【选择排序】

选择排序

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。

   个人理解:选择排序是从一个无序的数组中选出第一个数,然后和后面的数做比较,如果第二个数小于(升序)第一个数,则下把第二个数的下标放在一个临时变量里;如果第三个数比第二个数还小,则把第三个数的下标放在临时变量里;依次类推,最里面的For循环结束,找出最小数的下标之后,和第一个数交换位置。外层循环++,然后在执行上面的步骤。

举个栗子:现有数组18、2、9、4、13

初始数组 18 2 9 4 13
第一次外循环 2 18 9 4 13
第二次外循环 2 4 9 18 13
第三次外循环 2 4 9 18 13
第四次内循环 2 4 9 13 18

图解

这里写图片描述

核心代码

            int[] arr = new int[] { 5, 4, 9, 1, 8, 3, 7, 2, 6, 0 };
            int temp;
            int pos = 0;
            for (int i = 0; i < arr.Length - 1; i++)
            {
                pos = i;    //存下标
                for (int j = i + 1; j <arr.Length; j++)
                {
                    if (arr[j] <arr[pos])
                    {
                        pos = j;  
                    }
                }
                //第i个数与最小的数arr[pos]交换
                temp = arr[i];
                arr[i] = arr[pos];
                arr[pos] = temp;
            }

猜你喜欢

转载自blog.csdn.net/ywq1016243402/article/details/82261919