选择排序

选择排序(selection sort)是一种原地(in-place)排序算法,适用于数据量较少的情况。由于选择操作是基于键值的且交换操作只在需要时才执行,所以选择排序长用于数值较大和键值较小的文件。

思想:

对一个数组进行排序,从未排序的部分反复找到最小的元素,并将其放在开头。

给定长度为 nnn 的序列和位置索引i=0 的数组,选择排序将:

minValueminIndexswap(nums[i],nums[minIndex])

伪代码:

动画演示

Go语言数据结构之选择排序示例详解

Go 代码实现

运行结果为:

[Running] go run "e:\Coding Workspaces\LearningGoTheEasiestWay\Go 数据结构\选择排序\main.go"\
8 10 12 13 20 27 40

总结

Go语言数据结构之选择排序示例详解

选择排序的优点:

  • 易于实现,容易理解
  • 原地排序(不需要额外的存储空间),即 空间复杂度为 O(1)O(1)O(1)

缺点:

  • 扩展性较差
  • 时间复杂度为 O(n2)O(n^2)O(n2)

稳定性:

  • 选择排序是不稳定的排序算法。

原文链接:https://juejin.cn/post/7042671726114635812