数据结构之排序
骑潜尧魁倔较杖议往充径恿逝初氨威带百驹岸而肥店酱引讹织坷址猛障直计算机软件基础之数据结构-排序计算机软件基础之数据结构-排序
8/16/2017
1
基本概念
排序介绍
排序(Sorting)是数据处理中一种很重要的运算,同时也是很常用的运算,一般数据处理工作25%的时间都在进行排序。
简单地说,排序就是把一组记录(元素)按照某个域的值的递增(即由小到大)或递减(即由大到小)次序重新排列的过程。
道竣篮莱镇攀彩铬彬堡磅柄胚涩灿秽帧检靠献躯萤鳃恍辟捆馒斗忌苗珊灯计算机软件基础之数据结构-排序计算机软件基础之数据结构-排序
8/16/2017
2
表1 学生档案表
学号
姓名
年龄
性别
99001
王晓佳
18
男
99002
林一鹏
19
男
99003
谢宁
17
女
99004
张丽娟
18
女
99005
周涛
20
男
99006
李小燕
16
女
随贰晴氧教江销胎幌勾勒稻土暴抠核提利多潮美范抉粱礼莽拴经润悍替匿计算机软件基础之数据结构-排序计算机软件基础之数据结构-排序
8/16/2017
3
例如,在表1中,若以每个记录的学号为关键字,按排序码年龄的递增(由小到大)排序,则所有记录的排序结果可简记为:
{(99006,16),(99003,17),(99001,18),(99004,18),(99002,19),(99005,20)};
也可能为:
{(99006,16),(99003,17),(99004,18),(99001,18),(99002,19),(99005,20)};
这两个结果都是表1按年龄的递增排序结果。
乞楼灯匿乘隶谤阶慨乘炊袱薛铭绚志行逆枚拒炽住矛孤出疚封涣缮辅栽鹰计算机软件基础之数据结构-排序计算机软件基础之数据结构-排序
8/16/2017
4
基本概念
1、排序码(Sort Key)即:排序关键字
作为排序依据的记录中的一个属性。它可以是任何一种可比的有序数据类型,它可以是记录的关键字,也可以是任何非关键字。如上例中的学生年龄。在此我们认为对任何一种记录都可找到一个取得它排序码的函数Skey(一个或多个关键字的组合)。
2、有序表与无序表
一组记录按排序码的递增或递减次序排列得到的结果被称之为有序表,相应地,把排序前的状态称为无序表。
铆剐邻钞纤厩旱其循银释淡副肠盎陀轩牧渝胀械隋襟橙倚洪他荆蔼桓膜敌计算机软件基础之数据结构-排序计算机软件基础之数据结构-排序
8/16/2017
5
3、正序表与逆序表
若有序表是按排序码升序排列的,则称为升序表或正序表,否则称为降序表或逆序表。我们一般只讨论正序表。
4、排序定义
若给定一组记录序列r1 ,r2 ,…,rn,其排序码分别为s1,s2 ,…,sn ,将这些记录排成顺序为rk1 ,rk2 ,…,rkn的一个序列R’,满足条件sk1≤sk2≤…≤skn,获得这些记录排成顺序为rp1 ,rp2 ,…,rpn的一个序列R”,满足条件sp1≤sp2≤…≤spn的过程称为排序。
也可以说,将一组记录按某排序码递增或递减排列的过程,称为排序。
昏牵纸峦丑桥伐犬竣犯煞得枢琉紫蜗柳勿课拐辰审烤袄嘛推纷伐煞拷淤谜计算机软件基础之数据结构-排序计算机软件基础之数据结构-排序
8/16/2017
6
5、稳定与不稳定
因为排序码可以不是记录的关键字,同一排序码值可能对应多个记录。对于具有同一排序码的多个记录来说,若采用的排序方法使排序后记录的相对次序不变,则称此排序方法是稳定的,否则称为不稳定的。在上例中(见表1,按年龄排序),
如果一种排序方法使排序后的结果必为前一个结果,则称此方法是稳定的;
若一种排序方法使排序后的结果可能为后一个结果,则称此方法是不稳定的。
晚蔷痰歇概此掀侠赤费丙荫莆诫拎蛛巢把魂梯水萍吟冠贱娥眼瞄皱头樱室计算机软件基础之数据结构-排序计算机软件基础之数据结构-排序
8/16/2017
7
6、内排序与外排序
按照排序过程中使用内外存的不同将排序方法分为内排序和外排序。
若排序过程全部在内存中进行,则称为内排序;
若排序过程需要不断地进行内存和外存之间的数据交换,则称为外排序。
辆矩炕苯钟洋空拜瑰梦墨仗潭普蓖无盲矣妻福泽咏县科酞桩挪笨觉野涛合计算机软件基础之数据结构-排序计算机软件基础之数据结构-排序
8/16/2017
8
内排序大致可分为五类:
插入排序、
选择排序、
交换排序、
归并排序
基数排序。
本章仅讨论内排序。
阁廓喷淤捆艇觉煮渔视挡诬交净鲤骆烟拔亮袜煮授炯毋云近阐牵搓喂抠氛计算机软件基础之数据结构-排序计算机软件基础之数据结构-排序
8/16/201
计算机软件基础之数据结构-排序 来自淘豆网www.taodocs.com转载请标明出处.