直接选择排序(Straight Select Sort)算法思想:第一趟从n个元素的数据序列中选出关键字最小/大的元素并放到最前/后位置,下一趟再从n-1个元素中选出最小/大的元素并放到次前/后位置,以此类推,经过n-1趟完成排序。
图解
直接选择排序算法实现如下:
public static void selectionSort(int[] array){
for (int i = 0; i < array.length-1; i++) {
int min = i;
for (int j = i+1; j < array.length; j++) {
if(array[min] > array[j]){
min = j;
}
}
if(min != i){
int temp = array[i];
array[i] = array[min];
array[min] = temp;
}
}
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
直接选择排序算法分析
时间复杂度为O(n2)。
直接选择排序的空间复杂度为O(1)。直接选择排序算法是不稳定的。