• C# 排序算法2:选择排序


    选择排序法 ,是在要排序的一组数中,选出最小(或最大)的一个数与第一个位置的数交换;在剩下的数当中找最小的与第二个位置的数交换,即顺序放在已排好序的数列的最后,如此循环,直到全部数据元素排完为止。


    原理:1. 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,

               2. 再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

               3. .以此类推,直到全部待排序的数据元素排完。

     /// <summary>
            /// 选择排序
            /// </summary>
            /// <param name="arr"></param>
            /// <returns></returns>
            static int[] SelectSort(int[] arr)
            {
                for (int i = 0; i < arr.Length ; i++)// 4.继续遍历,将最小数,放入第二个,第三个...第n个位置
                {
                    int minValueIndex = i; //最小值的下标位置,初始设为第一个位置
                    for (int j = i+1; j < arr.Length; j++)// 2. 比较遍历后,找出这些待排序数据中最小值的下标位置
                    {
                        if (arr[j] < arr[minValueIndex])//1. 比较两元素,将较小值的下标位置赋值给 minValueIndex
                        {
                            minValueIndex = j;
                        }
                    }
                    //3. 将选出的最小元素,与第一个位置的元素,进行交换(即选出了最小的一个数,放入了第一个位置)
                    var temp = arr[i];  
                    arr[i] = arr[minValueIndex]; 
                    arr[minValueIndex] = temp;
                }
    
                return arr;
            }

    排序结果

      static void Main(string[] args)
            {
                Console.WriteLine($"数据算法");
                var arr1=  GetArrayData(8, 1, 22);
                Console.WriteLine($"生成未排序数据:{ShowArray(arr1)}");
                var arr2 = BubbleSort(arr1);
                Console.WriteLine($"冒泡排序:{ShowArray(arr2)}");
                var arr3= SelectSort(arr1);
                Console.WriteLine($"选择排序:{ShowArray(arr3)}");
                Console.ReadLine();
            }

  • 相关阅读:
    Salt-ssh批量自动安装被控端salt-mini
    Saltstack配置管理
    gitlab的安装和基本维护
    Git的杀手级功能之 一 远程仓库
    分布式版本控制系统-git
    Linux查看服务器公网ip的方法
    vmware fusion 10序列号
    python3.6.4的importlib模块重载用法
    设置PyCharm中的Python代码模版
    MacOs执行SQL出错(mysql)
  • 原文地址:https://www.cnblogs.com/for-easy-fast/p/14032537.html
Copyright © 2020-2023  润新知