基本数据结构中各种内部排序比较(时间复杂度,空间复杂度和稳定性)

本文对比了不同内部排序算法,包括插入排序、选择排序、交换排序、二路归并排序和基数排序,讨论了它们的时间复杂度、空间复杂度和稳定性。插入排序中的直接插入、折半插入和希尔排序各有特点;选择排序如简单选择排序和堆排序以选择最大或最小值为关键;交换排序如冒泡排序和快速排序侧重元素交换;二路归并排序采用分治策略;基数排序则采用非比较方式,对多关键字进行排序。文章还探讨了稳定性的概念。
摘要由CSDN通过智能技术生成

基本数据结构中各种内部排序比较(时间复杂度,空间复杂度和稳定性)

插入排序

  插入类的排序就好像是军训时来了一个迟到的同学,这个同学会“插入”到队伍的合适位置。
1.直接插入排序
  每趟将一个新的关键字按照值的大小比较插入到已经有序的队伍中,直到所有的关键字都被插入有序序列。
2.折半插入排序
  这里的插入方式和直接插入排序一样,区别在比较方法不一样,这里是用折半查找法来查找插入位置。与直接插入相比较,查找位置的效率大大增加,插入时移动次数都是一样的。
3.希尔排序
  又叫做缩小增量排序,是将待排序列按照某种规则(增量)分成几个子序列,分别对这几个子序列进行直接插入排序,然后将增量减半,再分为几个子序列进行直接插入排序,当增量减少为1时,可以直接将其理解为直接插入排序,这时所得序列为有序序列。
  那直接用直接插入排序不就好了吗,为什么会用到希尔排序,举这样一个例子:7 9 8 5 4 0 6 2 3 1
以增量5分割序列,我们将这个序列分为5个子序列:
子1:7       0
子2: 9       6
子3:  8       2
子4:   5       3
子5:    4       1
将子序列分别进行直接插入排序:
子1:0       7
子2: 6       9
子3:  2       8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值