内部排序(总结篇)

  1. 内部排序与外部排序的区别:

  排序过程中涉及的存储器不同,内部排序所操作的数据都存放于内存;而外部排序所操作的数据量太大以至于不能全部放于内存,会涉及到外存访问。

  

  2. 内部排序算法的稳定性:

  待排序的数据中如果有两个相等的数据,经过排序算法之后的先后顺序依据不变的话,则称该排序方法是稳定的,否则就是不稳定的。

 

  3.内部排序算法的分类:

3.1 按内部排序过程中所需的工作量来区分可分为三类:

(1)   简单的排序方法, 其时间复杂度为n*n

(2)   先进的排序方法, 其时间复杂度为nlogn

(3)   基数排序,其时间复杂度为d*n

 

3.2 按内部排序过程中所依据的不同原则可分为五类:

(1)插入排序:  直接插入排序   折半插入排序    2-路插入排序     表插入排序      希尔排序

(2)交换排序:  起泡排序     快速排序

(3)选择排序:  简单选择排序    树形选择排序     堆排序

(4)归并排序:  2-路归并排序  

(5)基数排序:   链式基数排序

 

  下表是各内部排序方法的总览:

 

  3.3

  另外,对于单个记录所占空间太大时,排序过程中不合适直接进行记录间的交换,而有些内部排序方法如堆排序、快速排序,无法像表插入排序、链式基数排序那样,以修改指针代替记录移动,这种情况下,可以另设一个地址向量,当移动和比较记录时,利用地址向量中的值实现,与此方法相关的算法见 地址排序(重排算法)

 

   3.4 最后,探讨下,”内部排序可能达到的最快速度?”

   上述讨论的排序方法(除基数排序外),都是基于“关键字间的比较”实现的,这类操作可以用一个判定树描述,利用二叉树相关的基础性质知,借助于“比较”进行排序的算法在最坏情况下能达到的最好的时间复杂度就是nlog2n

转载于:https://www.cnblogs.com/aimmiao/p/9346410.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值