• C# 排序算法总结


    1、冒泡排序

    1.冒泡排序   将被排序的记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"(冒泡因此得名)。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。 下面是种的往下冒泡的例子

     class Program
        {
            /// <summary>
            /// 冒泡排序 
            /// </summary>
            /// <param name="numArr"></param>
            public void Sort(int[] numArr)
            {
                int tmpNum;
                for (int i = 0; i < numArr.Length -1 ;i++ )//最多做numArr.Length-1趟排序
                {
                    for (int j = 0; j < numArr.Length- i - 1;j++ )
                    {
                        if (numArr[j]>numArr[j+1])
                        {
                            tmpNum = numArr[j];
                            numArr[j] = numArr[j + 1];
                            numArr[j + 1] = tmpNum;
                        }
                    }
                }
            }
            static void Main(string[] args)
            {
                int[] Arr = new int[] {3,6,1,9,8,7 };
                Program p = new Program();
                p.Sort(Arr);
                for (int k = 0; k < Arr.Length;k++ )
                {
                    Console.Write("{0} ", Arr[k]);
                }
            }
        }
    

      

    2、选择排序(Selection Sort)

    选择排序的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。

            /// <summary>
            /// 选择排序(Selection Sort)的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,
            /// 顺序放在已排好序的子文件的最后,直到全部记录排序完毕。
            /// </summary>
            /// <param name="numArr"></param>
            public void SelectionSort(int[] numArr)
            {
                int min, tmpNum;
                for (int i = 0; i < numArr.Length - 1;i++ )
                {
                    min = i;
                    for (int j = i + 1; j < numArr.Length;j++ )
                    {
                        if (numArr[j] < numArr[min])
                        {
                            min = j;
                        } 
                    }
                    tmpNum = numArr[i];
                    numArr[i] = numArr[min];
                    numArr[min] = tmpNum;
                }
            }
            static void Main(string[] args)
            {
                int[] Arr = new int[] {3,6,1,9,8,7 };
                Program p = new Program();
                p.SelectionSort(Arr);
                for (int k = 0; k < Arr.Length; k++)
                {
                    Console.Write("{0} ", Arr[k]);
                }
            }
    

      

  • 相关阅读:
    javaSE基础(三)
    javaSE基础(二)
    javaSE基础(一)
    文件目录爬虫
    前自增 与 后自增
    查找 与 排序 总结
    python 使用 grpc
    python3.7 安装 uwsgi
    go
    go
  • 原文地址:https://www.cnblogs.com/linlf03/p/2336691.html
Copyright © 2020-2023  润新知