原理:选择排序是搜索整个数组,将找到的最小值与数组中第一位元素交换位置;然后在剩下的元素中找到最小值,将找到的最小值与数组中第二位元素交换位置,依此类推,直到将所有的元素排好顺序。
//选择排序,从小到大排列 public static void selectionsort (){ int[] array =new int[6]{ 1,6,8,7,5,4}; //定义一个数组 for (int i=0; i<array.Length;i++) { //外层循环,执行的是寻找最小值的次数 //(先将第一个元素作为最小值,然后与后面的元素进行比较是第一次;再将第二个元素作为最小值与后面的数进行比较是第二次) int min = i; //先将数组的下标1赋值给min(此时min就代表数组中的第一个元素),主要用于将数组中第一个元素与后面其他元素进行比较 for (int j=i+1; j<array.Length;j++) { //执行内层循环, if (array[min]>array[j]) { //将“初定'最小值与后面的元素进行比较 min = j; //如果“初定”最小值大于后面的某一个元素,就将后面的某个元素作为“初定”最小值,直至本次比较完毕 } } int temp = array[i]; //将本次找到的最小值添加到数组中相应的位置 array[i] = array[min]; //等于说第一次找到最小值就放在数组的第一位,第二次找到的最小值就放在第二位。。。。 array[min] = temp; } foreach (int item in array) { //遍历输出 Console.Write(item+" "); } }