【发布时间】:2016-06-07 21:45:21
【问题描述】:
public int[] selectionSort(int array[]) {
for(int i = array.length - 1; i >= 0; i--) {
int highestIndex = i;
for(int j = i; j >= 0; j--) {
if(array[j] > array[highestIndex])
highestIndex = j;
}
int temp = array[i];
array[i] = array[highestIndex];
array[highestIndex] = temp;
}
return array;
}
我了解选择排序的概念,但代码让我感到困惑。具体来说,有人可以解释以“int temp = array[i];”开头的外部 for 循环的最后三个语句中发生的事情吗?
【问题讨论】:
-
你切换
array[i]和array[highestIndex]的位置。为此,您需要复制array[i],以便在它被array[i] = array[highestIndex];覆盖后访问该值。
标签: java sorting for-loop selection selection-sort