一、原理
两元素之间一一对比,不进行位置交换,对比完毕挑选出最小值,将最小值与第一个位置元素进行交换。
同理,挑选出第二小的值,与第二个位置元素进行交换交换,循环往复
二、代码实现
private void selectionSort(int[] array) {
for(int i = 0; i < array.length; i++) {
//index即为最小值位置记录
int index = i;
for(int j = i + 1; j < array.length; j++) {
if(array[index] > array[j]) {
index = j;
}
}
//若最小值角标不是i,则说明i位置不是最小值,需要进行交换
if(index != i) {
int y = array[i];
array[i] = array[index];
array[index] = y;
}
}
System.out.println(Arrays.toString(array));
}
三、时间复杂度