选择排序可以说是冒泡排序的改进,减少了数据交换的次数。
public void selectSort(int[] array) {
int length = array.length - 1;
int min = 0;
for(int i = 0; i < length; i++) {
min = i;
for(int j = i + 1; j <= length; j++) {
if(array[min] > array[j]) {
min = j;
}
}
swap(array, i, min);
}
}
private void swap(int[] array, int aIndex, int bIndex) {
int temp = array[aIndex];
array[aIndex] = array[bIndex];
array[bIndex] = temp;
}
选择排序的时间复杂度为O(n^2),空间复杂度O(1)。