zoukankan      html  css  js  c++  java
  • 两种排序方法(冒泡排序、选择排序)

    选择排序,每一次外循环,在无序数中选择出一个最小,并放在无序数中的第一位

    public static void SelectSort(int[] list)        //选择排序(升序)
            {
                int min;//记录最小值索引
                int N = list.Length;                      //获得数组list的长度N
                for (int i = 0; i < N - 1; i++)           //外循环进行N-1轮比较
                {
                    min = i;//假设当前索引就是最小值索引
                    for (int j = i; j < N ; j++)          //内循环中在无序数中找最小值(j=i这里循环从i开始,因为i之前都是有序数,不用再比较了)
                    {
                        if (list[min] > list[j])
                        {
                            min = j;
                        }
                    }
                    //最小值与无序数中的第一个元素交换
                    int t = list[min];
                    list[min] = list[i];
                    list[i] = t;
                }
            }

    冒泡排序,每一次外循环,其中的最大数就下沉到当前两两比较数的最后一位

    public static void BubbleSort(int[] list)     //冒泡排序(升序)
            {
                int N = list.Length;                      //获得数组list的长度N
                for (int i = 1; i <= N - 1; i++)          //外循环进行N-1轮比较
                {
                    for (int j = 0; j <= N - 1 - i; j++)   //内循环进两两比较,大数下沉(‘- i’外循环循环完一次选出一个最大值放在后面,后面的就不用再比较了,)
                    {
                        if (list[j] > list[j+1])          //前一个数比后一个数大就替换当前两个数,最后最大数就到最后一个了
                        {
                            int t = list[j];
                            list[j] = list[j+1];
                            list[j+1] = t;
                        }
                    }
                }
            }

    下面就让我们来实现一下吧!

    private void Form1_Load(object sender, EventArgs e)        

    {             //数组排序             int[] iList = new int[5];             Random rd = new Random();             for (int i = 0; i < iList.Length; i++)             {                 int iRD = rd.Next(1, 51);                 if (iList.Contains(iRD))                 {                     i--;                     continue;                 }                 iList[i] = iRD;             }             BubbleSort(iList);

                string strWrite = "";             foreach (int i in iList)             {                 strWrite += i + " ";             }             textBox1.Text = strWrite;         }

  • 相关阅读:
    javascript给builtin对象添加新方法
    __stdcall、__cdecl 、CALLBACK 几种函数修饰符
    判断是空白符(空格、换页、换行、回车、横向制表和纵向制表)的方法
    strcpy函数的实现
    strncpy实现
    strcat实现
    android修改标题栏高度
    断言 assert
    字符类别测试总结
    判断是否是控制字符
  • 原文地址:https://www.cnblogs.com/net2012/p/3383535.html
Copyright © 2011-2022 走看看