排序算法

排序算法

排序:整理文件中的记录,使之按关键字递增(递减)的次序排列起来

被排序对象-文件

排序运算的依据-关键字

 

1.排序的稳定性

当待排序记录的关键字均不相同时,排序结果是唯一的,否则不唯一

稳定性的前提:待排序的文件中,存在多个关键字相同的记录

经过排序后:

       若具有相同关键字的记录之间的相对次序保持不变,该排序方法是稳定

若具有相同关键字的记录之间的相对次序发生变化,则是不稳定

2.排序的分类

按是否涉及数据的内、外存交换,分为内部排序和外部排序

排序过程中,整个文件都放在内存中处理,排序不涉及数据的内外存交换,,则称之为内部排序,否则,称之为外部排序

内部排序常用于记录个数不是很多的小文件

外部排序适用于记录个数太多、不能一次将其全部放入内存的大文件

3.排序的基本操作

       1.比较两个关键字的大小

       2.改变指向记录的指针或者移动记录本身

第二中操作依赖于待排序记录的存储方式。

4.待排文件的常用存储方式

1.以顺序表作为存储结构

对记录本身进行物理重排,即通过关键字的比较,将记录移到合适的位置

2.以链表作为存储结构

无须移动记录,仅需修改指针

3.用顺序的方式存储待排序的记录,但同时建立一个辅助表,比如包括关键字和指向记录位置的指针组成的索引表

只需对辅助表的表目进行物理重排,即只移动辅助表的表目,而不移动记录本身

5.评价算法的性能指标

1.执行时间和所需的辅助空间

2.算法本身的复杂程度

1.时间复杂度

大多数排序算法的时间开销主要是关键字之间的比较和记录的移动,有的排序算法其执行时间不仅依赖于问题的规模,还取决于输入实例中数据的状态(已排序好或者说反向排序好)

2.空间复杂度

若排序算法所需的辅助空间并不依赖于问题的规模n,即辅助空间为O(1),则称之为就地排序(In-Place,非就地排序要求的辅助空间一般为O(n)

6.稳定排序和不稳定排序

 

最坏

最好

平均

空间复杂度

稳定性

冒泡排序

O(n2)

O(n)

O(n)

O(1)

稳定

堆排序

 

 

 

 

 

插入排序

 

 

 

 

 

归并排序

 

 

 

 

 

快速排序

 

 

 

 

 

基数排序

 

 

 

 

 

选择排序

 

 

 

 

 

希尔排序

 

 

 

 

 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值