抉择排序(Selection Sort)
抉择排序是一种简略直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,寄存到排序序列的起始地位,而后,再从残余未排序元素中持续寻找最小(大)元素,而后放到已排序序列的开端。以此类推,直到所有元素均排序结束。--维基百科
排序流程示意图:
1.初始化乱序序列后,序列区域均为未排序序列。
2.从未排序序列中查找最小(大)的元素,与序列第一个元素进行替换,此时替换后的区域为已排序序列。
3.反复以上操作,直至遍历残缺个未排序序列。
抉择排序算法的空间复杂度为O(1),工夫复杂度为O(n2)
代码演示:
func selectionSort(array [6]int) [6]int { if len(array) == 1 { return array } for i := 0; i < len(array) -1; i++ { key := i for j := i; j < len(array); j ++ { if array[j] < array[key] { key = j } } if i != key { temp := array[i] array[i] = array[key] array[key] = temp } } return array}