抉择排序(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
}