排序概述.ppt
《排序概述.ppt》由会员分享,可在线阅读,更多相关《排序概述.ppt(32页珍藏版)》请在优知文库上搜索。
1、排序概述排序概述一、概述数据处理的核心运算就是排序,如果数据数据处理的核心运算就是排序,如果数据是按关键字大小有序排列的,就可以提高是按关键字大小有序排列的,就可以提高处理数据的效率。处理数据的效率。排序是计算机程序中一种基础性操作,研排序是计算机程序中一种基础性操作,研究和掌握各种排序方法是非常重要的。究和掌握各种排序方法是非常重要的。排序是程序设计中一种重要的运算,功能排序是程序设计中一种重要的运算,功能是将一个数据元素(记录)的任意序列重是将一个数据元素(记录)的任意序列重新排列成一个按关键字有序的序列。新排列成一个按关键字有序的序列。一、概述排序定义:排序定义:给定具有给定具有n n个
2、记录个记录Rl,R2,Rn的文件,每个记录的文件,每个记录Ri都有一都有一个关键字个关键字K Ki i (1in)(1in)且对任意两个关键字且对任意两个关键字Ki和和Kj都有如下都有如下关系:关系:KiKj 或或 KiKj 或或 KiKj排序问题就是按照关键字值的某种关系,寻找一个排列排序问题就是按照关键字值的某种关系,寻找一个排列S S,使得使得 KS(i)KS(i+1)或或 KS(i)KS(i+1)(1in-1)(1in-1)从而可得到文件中各记录的一种排序:从而可得到文件中各记录的一种排序:(RS(1),RS(2),RS(n)。排序就是按关键字值的递减排序就是按关键字值的递减(K KS
3、(i)S(i)KKS(i+1)S(i+1))或递增(或递增(K KS(i)S(i)KKS(i+1)S(i+1))次序,把文件中的)次序,把文件中的各记录一次排列起来,可使得一个无序的各记录一次排列起来,可使得一个无序的文件变成有序文件的一种操作。文件变成有序文件的一种操作。一、概述上述排序定义中的关键字上述排序定义中的关键字Ki可以是记录可以是记录Ri的的一个关键字或者是若干数据项的组合。若一个关键字或者是若干数据项的组合。若Ki是唯一的,则排序后得到的结果是唯一的;是唯一的,则排序后得到的结果是唯一的;果果Ki是不唯一的,假设是不唯一的,假设Ki=Kj,且在排序钱,且在排序钱序列中若序列中若
4、Ri领先于领先于Rj,若在排序后的系列中,若在排序后的系列中Ri仍领先于仍领先于Rj,则称所用的排序方法是稳定,则称所用的排序方法是稳定的;反之,若可能使排序后的序列中的;反之,若可能使排序后的序列中Rj领先领先于于Ri,则称所用的排序方法是不稳定的。,则称所用的排序方法是不稳定的。一、概述在排序的过程中需要进行下列两种基在排序的过程中需要进行下列两种基本操作:本操作:(1)比较两个关键字的大小)比较两个关键字的大小(2)将记录从一个位置移至到另一个位置。)将记录从一个位置移至到另一个位置。一、概述要排序文记录序列,有三种常见的存储表示方要排序文记录序列,有三种常见的存储表示方法:法:(1)顺
5、序结构)顺序结构要排序的初始文件的各个记录,按其自然顺序要排序的初始文件的各个记录,按其自然顺序存放在连续的一块内存空间中。排序时要移动存放在连续的一块内存空间中。排序时要移动记录才行。记录才行。(2)链式结构)链式结构将要排序的每个记录(数据元素)作为链表结将要排序的每个记录(数据元素)作为链表结构存储,并按原始次序链接起来。排序时,不构存储,并按原始次序链接起来。排序时,不需要移动记录元素,而只需要修改指针。需要移动记录元素,而只需要修改指针。一、概述(3)地址向量结构)地址向量结构待排序记录存放在一组地址连续的存储待排序记录存放在一组地址连续的存储单元,同时另设一个指示各个记录存储单元,
6、同时另设一个指示各个记录存储位置的地址向量,在排序过程中不移动位置的地址向量,在排序过程中不移动记录本身,而移动地址向量中这些记录记录本身,而移动地址向量中这些记录的的“地址地址”,在排序结束后,再按照地,在排序结束后,再按照地址向量中的值调整记录的存储位置。址向量中的值调整记录的存储位置。一、概述内部排序内部排序整个排序过程都在内存进行的排序称为内排序。整个排序过程都在内存进行的排序称为内排序。外部排序外部排序待排序的数据元素量大,以致内存一次不能容待排序的数据元素量大,以致内存一次不能容纳全部记录,在排序过程中需要对外存进行访纳全部记录,在排序过程中需要对外存进行访问的排序称为外排序。问的
7、排序称为外排序。一、概述二、插入排序基本思想:在一个已排好序的记录子集的基本思想:在一个已排好序的记录子集的基础上,每一步将下一个待排序的记录有基础上,每一步将下一个待排序的记录有序地插入到已排好序的记录子集中,直到序地插入到已排好序的记录子集中,直到将所有待排序的记录全部插入为止。将所有待排序的记录全部插入为止。直接插入排序直接插入排序*折半插入排序折半插入排序*2路插入排序路插入排序表插入排序表插入排序希尔排序希尔排序*1、直接插入排序直接插入排序是一种最简单的排序方法,直接插入排序是一种最简单的排序方法,它的基本操作是将一个记录插到已排序好它的基本操作是将一个记录插到已排序好的有序表中,
8、从而得到一个新的,记录数的有序表中,从而得到一个新的,记录数增增1的有序表。的有序表。插入前:(插入前:(1 3 5 8)2 7 4 9 6 有序有序 无序无序 插入后:(插入后:(1 2 3 5 8)7 4 9 6 有序有序 无序无序1、直接插入排序初始关键字:初始关键字:45 62 35 77 92 55 14 45 62 35 77 92 55 14 3535 i=2 45 62 35 77 92 55 14 i=2 45 62 35 77 92 55 14 3535i=3 35 45 62 77 92 55 14 i=3 35 45 62 77 92 55 14 3535i=4 35
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 排序 概述