关于数据结构和算法:常用排序算法之选择排序

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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理