排序

所谓排序,就是整理文件中的记录,使之按关键字递增(或递减)的顺序排列起来。

1.被排序的对象--文件

被排序的对象--文件由一组记录组成。

记录则由若干数据项(或域)组成。其中有一项可用来标识一个记录,称为关键字项。该数据项的值称为关键字(Key)。

2.排序运算的依据--关键字

用来做排序运算依据的关键字,可以是数字类型,也可以是字符类型。关键字的选取应根据问题的要求而定。

3.排序的稳定性

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

在排序的文件中,若存在多个关键字相同的记录,经过排序后这些具有相同关键字的记录之间的相对次序保持不变,该排序方法是稳定

的;若具有相同关键字的记录之间的相对次序发生变化,则称这种排序方法是不稳定的。

4.排序方法的分类

1)按是否涉及数据的内、外存交换分

在排序过程中,若整个文件都是放在内存中处理,排序时不涉及数据的内外存交换,则称为内部排序(简称内排序)。反之,若排序过程中要进行数据的内、外存交换,则称为外部排序。内部排序适用于记录个数不很多的小文件。外排序则适用记录个数太多,不能一次将其全部记录放入内存的大文件。

2)按策略划分内部排序方法

可以分为5类:插入排序,选择排序,交换排序,归并排序和分配排序。

5.排序算法的基本操作

大多数排序算法都有两个基本的操作:

1)比较两个关键字的大小。

2)改变指向记录的指针或移动记录本身。

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

1)以顺序表(或直接用向量)作为存储结构

排序过程:对记录本身进行物理重排,即通过关键字之间的比较判定,将记录移到合适的位置。

2)以链表作为存储结构

排序过程:无须移动记录,仅需修改指针。通常将这类排序称为链表(或链式)排序。

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

排序过程:只需对辅助表的标目进行物理重排(即只移动辅助表的表目,而不移动记录本身)。适用于难在链表上实现,且仍需避免排序过程中移动记录的排序方法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值