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