选择排序可以说是冒泡排序的改进,减少了数据交换的次数。
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)。