选择排序之直接选择排序
2017-06-23 22:09
127 查看
选择排序的基本思想就是依此从待排序记录序列中选择出关键字值最小(或最大)的记录,并分别将他们定位到序列左侧(或右侧),
直接选择排序,假设待排序的序列为
直接选择排序就是从无序序列中选出最小的记录加入到有序序列
举例说明
初始序列
51 33
62 96 87
17 28
从第一位51开始作为第一个有序序列,往后找出最小的值然后与之交换,如果没有,再从第二个位置开始重复往下找,
首先33<51 ,则认为33是较小的数从33开始找如果有比33小的数则继续找,发现17 比33小是最小的,
则将17 和51交换,
变为
[17] 33
62 96 87
51 28
有序序列现在变为17 ,后面为无序序列,从后面再次找到最小值,然后放到17的后面组成新的有序序列,
从33开始找,只有28比他小,交换28和33
最新的有序序列是
[17,28] 62
96 87
51 33
以此类推
[17,28,33] 96
87 51
62
[17,28,33,51] 87
96 62
[17,28,33,51,62] 96
87
[17,28,33,51,62,87] 96
[17,28,33,51,62,87,96]
直接选择排序的平均时间复杂度为O(n2)
直接选择排序,假设待排序的序列为
有序序列R[1..i-1] | 无序序列R[i..n] |
举例说明
初始序列
51 33
62 96 87
17 28
从第一位51开始作为第一个有序序列,往后找出最小的值然后与之交换,如果没有,再从第二个位置开始重复往下找,
首先33<51 ,则认为33是较小的数从33开始找如果有比33小的数则继续找,发现17 比33小是最小的,
则将17 和51交换,
变为
[17] 33
62 96 87
51 28
有序序列现在变为17 ,后面为无序序列,从后面再次找到最小值,然后放到17的后面组成新的有序序列,
从33开始找,只有28比他小,交换28和33
最新的有序序列是
[17,28] 62
96 87
51 33
以此类推
[17,28,33] 96
87 51
62
[17,28,33,51] 87
96 62
[17,28,33,51,62] 96
87
[17,28,33,51,62,87] 96
[17,28,33,51,62,87,96]
直接选择排序的平均时间复杂度为O(n2)
相关文章推荐
- 3. 选择排序—直接选择排序(Straight Selection Sort)
- 选择排序之直接选择排序
- 选择排序之直接选择排序
- 选择排序之直接选择排序
- 直接选择排序——从键盘上接收一些随机整数,然后用选择排序后再输出
- 第16周实践项目-选择排序之直接选择排序
- 数据结构例程——选择排序之直接选择排序
- 排序——选择排序之直接选择排序
- 选择排序之直接选择排序Java实现
- 第十六周-选择排序之直接选择排序
- 第16周项目1-选择排序之直接选择排序(5)
- 选择排序之直接选择排序
- 排序-选择排序(直接选择排序)
- 选择排序之直接选择排序
- 排序算法六:选择排序之直接选择排序
- 【每日算法】选择排序算法之直接选择排序
- 选择排序之堆排序
- 数据结构-排序: 选择排序(直接选择排序法)
- 冒泡排序,选择排序,插入排序
- 2.选择排序(直接选择排序和堆排序)