排序方法的分类(一)
来源:互联网 发布:网络ping大包丢包 编辑:程序博客网 时间:2024/06/15 21:48
1.按是否涉及数据的内、外存交换分
在排序过程中,若整个文件都是放在内存中处理,排序时不涉及数据的内、外存交换,则称之为内部排序(简称内排序);反之,若排序过程中要进行数据的内、外存交换,则称之为外部排序。
注意:
① 内排序适用于记录个数不很多的小文件
② 外排序则适用于记录个数太多,不能一次将其全部记录放人内存的大文件。
2.按策略划分内部排序方法
可以分为五类:插入排序、选择排序、交换排序、归并排序和分配排序。
3.待排文件的常用存储方式
(1) 以顺序表(或直接用向量)作为存储结构
排序过程:对记录本身进行物理重排(即通过关键字之间的比较判定,将记录移到合适的位置)
(2) 以链表作为存储结构
排序过程:无须移动记录,仅需修改指针。通常将这类排序称为链表(或链式)排序;
(3) 用顺序的方式存储待排序的记录,但同时建立一个辅助表(如包括关键字和指向记录位置的指针组成的索引表)
排序过程:只需对辅助表的表目进行物理重排(即只移动辅助表的表目,而不移动记录本身)。适用于难于在链表上实现,仍需避免排序过程中移动记录的排序方法
4.排序算法性能评价
(1) 评价排序算法好坏的标准
评价排序算法好坏的标准主要有两条:
① 执行时间和所需的辅助空间
② 算法本身的复杂程度
(2) 排序算法的空间复杂度
若排序算法所需的辅助空间并不依赖于问题的规模n,即辅助空间是O(1),则称之为就地排序(In-PlaceSou)。
非就地排序一般要求的辅助空间为O(n)。
(3) 排序算法的时间开销
大多数排序算法的时间开销主要是关键字之间的比较和记录的移动。有的排序算法其执行时间不仅依赖于问题的规模,还取决于输入实例中数据的状态。
期待将持续更新!
syw_selfimpr新浪微博地址: http://weibo.com/u/2945271402
- 排序方法的分类(一)
- 排序(一)——排序的分类及比较
- 常用的排序方法(一)
- (一)图像分割方法的分类
- 常用排序方法(一)
- 常用排序方法(一)
- 内部排序的分类
- 排序算法的分类
- 排序的分类
- 排序的分类
- 几种常见的排序方法(一)
- 强大的POJ分类(一)
- SQL总结(一)SQL的分类
- 分类的IP地址(一)
- 目标跟踪算法的分类(一)
- 自定义数字排序(方法一)
- c++实现八大排序方法(一)
- 排序方法(一)
- Android获取手机经纬度
- PHP本地文件写入
- 结构体包含CString类型成员变量出错的原理
- TWaver基本编程 1
- atoi函数的简单实现
- 排序方法的分类(一)
- 开发servlet的三种方法
- 操作系统--1,Linux的应用和发展
- TWaver基本编程2
- 内存的划分
- Android前言
- POJ 1026 Cipher
- DPM(Defomable Parts Model) 源码分析-训练(三)
- java中的集合包简要分析