排序问题——归并&&基数排序

排序问题——归并&&基数排序

归并排序

基本思想:将两个或者两个以上的有序子序列“归并”为一个有序序列。

  • 在内部排序中,通常采用2-路归并排序
  • 如{48,34,60,80,75,12,26,48}
  • 倒着排序的树,归并树,如下
  • 总共多少趟,归并树的高度
    归并排序eg1
关键问题:如何将两个有序序列合成一个有序序列?

顺序表存储时,将两个有序表中两两比较,满足条件元素放入新的顺序表中,就合成为一个有序序列了。
小结:

  • 需要一个额外的数组
  • 稳定性:稳定
  • O(n*log n)
基数排序

基本思想:分配 & 收集;也叫做桶排序或箱排序

设置若干个箱子,将关键字为k的记录放入第k个箱子,然后在按序号将非空的链接。

基数排序:数字是由范围的,均由0-9这十个数字组成,则只需设置十个箱子,相继按个、十、百…进行排序。

eg:比如 若干个三位数
第一趟按照个位数大小,就扔进哪个箱子。
第二趟按照十位数大小,就扔进哪个箱子。
第三趟按照百位数大小,就扔进哪个箱子。
此时,已经有序;排序结束。
PS:不能从百位开始

小结:

  1. 适合多关键字排序。
  2. 稳定性:稳定

排序类大总结

性能总结

  1. 当待排记录序列按关键字顺序有序时,直接插入排序和冒泡排序能达到O(n)的时间复杂度;对于**快速排序(越乱越好)**而言,这个是最不好的情况,此时应该避免。
  2. 简单选择排序、堆排序、归并排序 的时间性能不随着记录序列中关键字的分布而改变。均差不多。
  3. 空间性能:指的是排序过程中所需的辅助空间大小:空间性能
  4. 稳定的排序方法:对于两个关键字相等的记录。他们在序列中相对位置,在排序前后,没有改变位置。
  5. 快排和堆排序(PS:简单选择排序也有不稳定情况,但书中给的是稳定)是不稳定的排序方法。
  6. 可以使用一颗判定树,来描述这类基于“比较关键字”进行排序的排序方法。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值