简单选择排序
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对象的移动次数与对象序列的初始排列有 关。当这组对象的初始状态是按其排序码 从小到大有序的时候, 对象的移动次数达 到最少,RMN = 0。 最坏情况是每一趟都要进行交换,总的对 象移动次数为 RMN = 3(n-1)。 总的时间复杂度是:O(n2) 简单选择排序是一种不稳定的排序方法。
16
21
j 16 < 25
08 1
25 2 i
49 3
25* 4
16
5 k
21 6 j
21 16
k 指示当前序列中最小者
简单选择排序的排序码比较次数 KCN 与对 象的初始排列无关。设整个待排序对象序列 有 n 个对象, 则第 i 趟选择具有最小排序码 对象所需的比较次数总是 n-i-1 次。总的排 序码比较次数为: KCN=(n-1) + (n-2) +……+ 2 + 1 =n(n-1)/2
最小者 25* 49 无交换
6
i=5
08
16
21
最小者 25 49 无交换
结果
08
16
21
25*
25
49
各趟排序后的结果
i =2时选择排序的过程
08
1 25 2 i k
49wk.baidu.com
3 j 49
25* 4 49 25
16 5
21
6
08
25
25*
16
21
i k 49
j 25* 25
08
25 i
25* k
简单选择排序 (Select Sort)
简单选择排序是一种简单的排序方法, 它 的基本步骤是: ① 在一组对象r[i]~r[n]中选择具有最小排 序码的对象; ②若它不是这组对象中的第一个对象, 则将 它与这组对象中的第一个对象对调; ③ 在这组对象中去除这个具有最小排序码 的对象。在剩下的对象r[i+1]~r[n]中重 复执行第①、②步, 直到剩余对象只有一 个为止。 P277:算法10.9
初始
21 1
25 2 25
49 3
25* 4 25*
16
5
08 6
i=1
21
49
16
最小者 08 交换21,08
08
i=2
08
25
49
25*
16
21
最小者 16 交换25,16
i=3
08
16
49
25*
25
最小者 21 21 交换49,21
i=4
08 1
16
2
21 3
25* 4 25*
25 5 25