选择排序一共排序了n-1轮。
for (int i = 0; i < arr.length - 1; i++) { }
定义变量min来记录每轮中需要比较序列中的最小数,变量minIndex记录每轮中最小数的下标.
int min = arr[i]; int minIndex = i;
第i轮,将第i个数赋给min,然后从下标为i+1的位置开始,遍历后续元素,让它们跟min比较。如果比min小,则将其值赋给min,并用minIndex记录其下标。如果比min大,则遍历下一个元素,直至找到最小数。
for(int j = i + 1; j < arr.length; j++) { //每一轮的比较 if(min > arr[j]){ //将min和遍历的元素比较,比min小则将其值赋给min,并记录最小数的下标minIndex min = arr[j]; minIndex = j; } }
对无序序列{-4, 5, 7, 1, 3}采用简单选择排序算法进行排序,具体过程为: