排序算法二:选择排序

一、原理

选择排序 (Selection sort) 是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小 (或最大) 的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小 (大) 元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。

选择排序无论在最坏或是最好的情况,时间复杂度都是 O(\(n^2\))

排序逻辑:

图解

以序列 [3, 1, 5, 4, 7]为例,执行第一趟排序时,找到的最小元素是 1,把它放到最前面和 3 对换:

第二趟排序,未排序数组为 [3, 5, 4, 7],此时数组内最小的元素是 3,刚好就是当前数组最开头的位置,因此无需替换,继续下一趟排序。

第三趟排序,未排序数组为 [5, 4, 7],此时数组内最小的元素是 4,放到最前面和 5 对换:

执行完第三趟排序后,数组就已经有序了。但是对计算机而言却并不知情,它还会继续判断后面的 [5, 7],但是刚好每次排序的时候,他们就处于应该在的位置。

二、代码实现

2.1 C++实现

2.2 python 实现

2.3 c 语言实现

发表评论