欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C#选择排序原理讲解及代码块

程序员文章站 2022-03-02 08:13:11
...

1.原理讲解
选择排序原理讲解

2.代码块

        public static void SelectSortMethod(int[] arr)
        {
            int temp = 0;
            for (int i = 0; i < arr.Length - 1; i++)
            {
                int minVal = arr[i]; //假设 i 下标就是最小的数
                int minIndex = i;  //记录我认为最小的数的下标
                for (int j = i + 1; j < arr.Length; j++)   //这里只是找出这一趟最小的数值并记录下它的下标
                {
                    //说明我们认为的最小值,不是最小
                    if (minVal > arr[j])    //这里大于号是升序(大于是找出最小值) 小于是降序(小于是找出最大值)
                    {
                        minVal = arr[j];  //更新这趟最小(或最大)的值 (上面要拿这个数来跟后面的数继续做比较)
                        minIndex = j;    //记下它的下标
                    }
                }
                int index = 0;
                //控制台输出
                foreach (int item in arr)
                {
                    Console.Write(item + ",");
                    index++;
                    if (index == arr.Length)
                    {
                        Console.WriteLine($"第{i + 1}次");
                    }
                }
                //最后把最小的数与第一的位置交换
                temp = arr[i];    //把第一个原先认为是最小值的数,临时保存起来
                arr[i] = arr[minIndex];   //把最终我们找到的最小值赋给这一趟的比较的第一个位置
                arr[minIndex] = temp;  //把原先保存好临时数值放回这个数组的空地方,  保证数组的完整性
            }
        }