zoukankan      html  css  js  c++  java
  • 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();
            }

  • 相关阅读:
    《大道至简》读后感
    四大扩展欧几里得算法
    java8中使用函数式接口
    04_web基础(一)之tomcat介绍
    03_java基础(九)之综合练习与考核评估
    建站流程
    03_java基础(八)之static关键字与代码块
    (十)拒绝服务攻击工具包
    (九)拒绝服务攻击工具
    (八)拒绝服务–应用层DoS 攻击
  • 原文地址:https://www.cnblogs.com/for-easy-fast/p/14032537.html
Copyright © 2011-2022 走看看