选择排序的思路:
1、首选从数组中寻找最小(大)元素,放在数组的起始位置。
2、在从剩余的数中寻找最小(大)元素,放在第二位,以此类推。
这样便起到了筛选的作用,一直以最小或最大的原则进行选择
代码实现
int[] arr = { 1, 9, 2, 4, 6, 7, 3 }; for(int i = 0; i < arr.Length-1; i++) { //标志位,用来记录最小值的序号 int flag = i; //取i+1,是不需要跟他自己比,也不需要和前面已经排序的比 for(int j = i+1; j < arr.Length; j++) { //如果里面有小于前面的数 if (arr[j] < arr[flag]) { //保证flag取到当前最小的值的序号 flag=j; } } //然后进行将位置尽心交换 int temp = arr[flag]; arr[flag] = arr[i]; arr[i] = temp; }