《外部排序》PPT课件.ppt
《《外部排序》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《外部排序》PPT课件.ppt(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 1 1 1、外存信息的存取、外存信息的存取、外存信息的存取、外存信息的存取2 2 2 2、外部排序的方法、外部排序的方法、外部排序的方法、外部排序的方法3 3 3 3、多路平衡归并的实现、多路平衡归并的实现、多路平衡归并的实现、多路平衡归并的实现4 4 4 4、置换、置换、置换、置换-选择排序选择排序选择排序选择排序5 5 5 5、最佳归并树、最佳归并树、最佳归并树、最佳归并树第第1111章章 外部排序外部排序 1、外存信息的存取、外存信息的存取1、外部排序:、外部排序:内部排序:信息一次可全部调入内存,信息在内存中的处理时间是主要的时间耗费。内部排序:信息一次可全部调入内存,信息在内存中
2、的处理时间是主要的时间耗费。外部排序:信息量巨大,无法一次调入内存。只能驻留在带、盘、外部排序:信息量巨大,无法一次调入内存。只能驻留在带、盘、CD-ROM 上。特点上。特点 为内存运行时间短,内、外存进行交换需要时间长。减少为内存运行时间短,内、外存进行交换需要时间长。减少 I/O 时间成为主时间成为主 要矛盾。要矛盾。记录(记录(Record):):数据项的集合存于内存,称之为结点。如果存之于外存,则叫做记数据项的集合存于内存,称之为结点。如果存之于外存,则叫做记 录。原因起源于是在历史上研究管理应用和计算机科学的两部分人录。原因起源于是在历史上研究管理应用和计算机科学的两部分人员的习惯。
3、员的习惯。域(场):记录中的每个数据项,称之为域(域(场):记录中的每个数据项,称之为域(Field)。文件:记录的集合。文件:记录的集合。关键字:唯一标识记录的域,称之为关键字。关键字:唯一标识记录的域,称之为关键字。有序文件:文件根据关键字的大小。排成递增或递减的序列。有序文件:文件根据关键字的大小。排成递增或递减的序列。2、基本术语:、基本术语:3、常用外存:、常用外存:磁带:由磁带介质、读、写磁头、驱动器、接收盘和原始盘组成。磁带:由磁带介质、读、写磁头、驱动器、接收盘和原始盘组成。便宜、可反复使用、是一种顺序存取设备。便宜、可反复使用、是一种顺序存取设备。查找费时、速度幔。查找费时、
4、速度幔。1、外存信息的存取、外存信息的存取3、常用外存:、常用外存:磁带:由磁带介质、读、写磁头、驱动器、接收盘和原始盘组成。磁带:由磁带介质、读、写磁头、驱动器、接收盘和原始盘组成。便宜、可反复使用、是一种顺序存取设备。便宜、可反复使用、是一种顺序存取设备。查找费时、速度慢。查找费时、速度慢。带信息的表示:带信息的表示:一种磁化方向、代表一种磁化方向、代表1另一种磁化方向,代表另一种磁化方向,代表001001001101011111、外存信息的存取、外存信息的存取3、常用外存:、常用外存:磁带:由磁带介质、读、写磁头、驱动器、接收盘和原始盘组成。磁带:由磁带介质、读、写磁头、驱动器、接收盘和
5、原始盘组成。便宜、可反复使用、是一种顺序存取设备。便宜、可反复使用、是一种顺序存取设备。查找费时、速度慢(尤其是查找末端记录时)。查找费时、速度慢(尤其是查找末端记录时)。.磁带机走向磁带机走向读读出出头头写写入入头头原原始始盘盘接接收收盘盘 带文件的组织:带文件的组织:记录记录 1记录记录 3记录记录 2IRG(Inter Record Gap)记录间隙)记录间隙1、外存信息的存取、外存信息的存取3、常用外存:、常用外存:带文件的组织:带文件的组织:记录记录 1记录记录 3记录记录 2IRG(Inter Record Gap)记录间隙)记录间隙vt可靠读写区可靠读写区 IRG:.5.75 i
6、nch,带来的问题是什么?带来的问题是什么?带的利用率下降,如:带的利用率下降,如:密度密度 800 byte per inch 的带。设每个记录有的带。设每个记录有 80 byte ,共,共 1000 个记录。如果,个记录。如果,IRG.6 inch;带的利用率?带的利用率?1000 (80/800)100 inch(file)1000 0.6 600 inch(total IRG)利用率利用率 1/7=14%必须改进带的利用率必须改进带的利用率!带文件的读写时间:带文件的读写时间:T i/o=ta+ntw ta 延迟时间:读写头到达相应的记录起始位置的时间。延迟时间:读写头到达相应的记录起
7、始位置的时间。tw 读读/写一个字符的时间;写一个字符的时间;n 字符字符数。数。读写头读写头1、外存信息的存取、外存信息的存取3、常用外存:、常用外存:带文件的组织的改进:带文件的组织的改进:块块 1块块 3块块 2IBG(Inter Block Gap)块间间隙块间间隙 IBG:.5.75 inch,带来的好处是什么?带来的好处是什么?每一块是一个物理记录,包含若干个逻辑记录。每一块是一个物理记录,包含若干个逻辑记录。(块因子)(块因子)一个物理记录包含逻辑记录的个数一个物理记录包含逻辑记录的个数 带的利用率上升,如上例:带的利用率上升,如上例:设设 B.F=100 1000/100 0.
8、6 6 inch(total IBG)1000 80/800 100 inch(file)利用率利用率 100/106=94.3%1、外存信息的存取、外存信息的存取3、常用外存:、常用外存:磁盘:由存取装置、读、写磁头、活动臂、盘片(磁道、扇区)、旋转主轴构成。磁盘:由存取装置、读、写磁头、活动臂、盘片(磁道、扇区)、旋转主轴构成。速度快、容量大、直接存取设备。速度快、容量大、直接存取设备。种类:固定头磁盘、活动头磁盘种类:固定头磁盘、活动头磁盘 固定头磁盘:每个磁道都有一个磁头(速度快)固定头磁盘:每个磁道都有一个磁头(速度快)活动头磁盘:每个盘面共用一个磁头,活动头磁盘:每个盘面共用一个磁
9、头,增加了找道的时间,应用广泛。增加了找道的时间,应用广泛。柱面:各盘面的直径相同的磁道的总和。柱面:各盘面的直径相同的磁道的总和。物理位置:盘组号、若干个磁盘构成一组,系统可能有许物理位置:盘组号、若干个磁盘构成一组,系统可能有许 多组。多组。柱面号、柱面号、磁道号、磁道号、块(扇区号)块(扇区号)盘文件的读写时间:盘文件的读写时间:T i/o=tseck+tla+ntwm tseck:找道时间找道时间tla:等待时间等待时间twm:传输时间传输时间/字符,字符,n 字符数。字符数。2、外部排序的方法、外部排序的方法1、步骤:、步骤:生成合并段(生成合并段(run):):读入文件的部分记录到
10、内存读入文件的部分记录到内存 在内存中进行内部排序在内存中进行内部排序 将排好序的这些记录写入外存,形成合并段将排好序的这些记录写入外存,形成合并段 再读入该文件再读入该文件 的下面的记录,往复进行,直至文件中的记录全部形成合并段的下面的记录,往复进行,直至文件中的记录全部形成合并段 为止。为止。外部合并:将上一阶段生成的合并段调入内存,进行合并,直至最后形成一个有序的文外部合并:将上一阶段生成的合并段调入内存,进行合并,直至最后形成一个有序的文 件。件。平衡合并分类法:被合并的初始合并段均匀分布在平衡合并分类法:被合并的初始合并段均匀分布在 K 条磁带上,即分布在条磁带上,即分布在 T1、T
11、2、Tk 上。对这上。对这 K 条带进行合并,将生成的中间归并段分布在条带进行合并,将生成的中间归并段分布在 TK+1、TK+2、T2K 上。然后,循环往复,直至最后形成一个上。然后,循环往复,直至最后形成一个 单一的合并段为止。单一的合并段为止。e.g:平衡平衡 2 路归并,路归并,K 2。2K=4,需需 4条磁带。六个初始合并段均匀分布在条磁带。六个初始合并段均匀分布在 T1、T2 上上。每个合并段有每个合并段有 1000 个记录。个记录。T3、T4 初始为空。合并过程如下:初始为空。合并过程如下:初始分布:初始分布:R(1 1000)R(20012000)R(4001.5001)R(10
12、01 2000)R(30014000)R(5001.6000)T1T2T4:空空T3:空空7、15、19 8、11、13 16、23、31 5、122、外部排序的方法、外部排序的方法 初始分布:初始分布:R(1 1000)R(20013000)R(4001.5001)R(1001 2000)R(30014000)R(5001.6000)T1T2T4:空空T3:空空 第一趟归并第一趟归并:T1:空空T2:空空T3:T4:R(1 2000)R(40016000)R(2001 4000)2、外部排序的方法、外部排序的方法 第二趟归并第二趟归并:T3:空空T4:空空T1:T2:R(1 4000)R(4
13、001 6000)第三趟归并第三趟归并:T3:T4:空空T1:空空T2:空空R(1 6000)2、外部排序的方法、外部排序的方法e.g:平衡平衡 3 路归并,路归并,K 3。2K=6,需需 6条磁带。六个初始合并段均匀分布在条磁带。六个初始合并段均匀分布在 T1、T2 、T3上。每个合并段有上。每个合并段有 1000 个记录。个记录。T4、T5、T6 初始为空。合并过程如下:初始为空。合并过程如下:初始分布:初始分布:R(1 1000)R(30014000)R(1001 2000)R(40015000)T1:T2:T4:空空T3:R(2001 3000)R(50016000)T5:空空T6:空
14、空 第一趟归并第一趟归并:R(1 3000)R(30016000)T4:T5:T1:空空T2:空空T3:空空T6:空空2、外部排序的方法、外部排序的方法e.g:平衡平衡 3 路归并,路归并,K 3。2K=6,需需 6条磁带。六个初始合并段均匀分布在条磁带。六个初始合并段均匀分布在 T1、T2 、T3上。每个合并段有上。每个合并段有 1000 个记录。个记录。T4、T5、T6 初始为空。合并过程如下:初始为空。合并过程如下:第一趟归并第一趟归并:R(1 3000)R(30016000)T4:T5:T1:空空T2:空空T3:空空T6:空空 第二趟归并第二趟归并:R(1 6000)T1:T2:空空T
15、3:空空T4:空空T5:空空T6:空空2、外部排序的方法、外部排序的方法 时间分析时间分析:归并趟数归并趟数:logkm where k 是路数;是路数;m 是初始合并段数。是初始合并段数。在上例中:在上例中:log26 =3 而而 log36 =2 此外,还有一次生成所有合并段的时间。对此外,还有一次生成所有合并段的时间。对 文件中的所有的记录全部读写一次。文件中的所有的记录全部读写一次。每一趟归并时,对文件中的所有的记录都要全部读写一次。每一趟归并时,对文件中的所有的记录都要全部读写一次。K 大,趟数减大,趟数减 少,读写记录的总数将减少。但少,读写记录的总数将减少。但 K 大,需要的内存
16、将越多。大,需要的内存将越多。减少初始合并段数减少初始合并段数 m,将使趟数减少,读写记录的总数将减少。这就要求在将使趟数减少,读写记录的总数将减少。这就要求在 内存一定且进行内部排序时,内存一定且进行内部排序时,生成尽可能长的归并段,从而减少归并段的生成尽可能长的归并段,从而减少归并段的 总数。总数。输入、输出缓冲区的安排输入、输出缓冲区的安排:设进行平衡设进行平衡 2 路归并,路归并,K 2。2K=4,需需 4条磁带。六个初条磁带。六个初 始合并段均匀分布在始合并段均匀分布在 T1、T2。每个合并段有每个合并段有 1000 个记录。个记录。T3、T4 初始为空。初始为空。R(1 1000)
17、R(20012000)R(4001.5001)R(1001 2000)R(30014000)R(5001.6000)T1T2T4:空空T3:空空2、外部排序的方法、外部排序的方法 输入、输出缓冲区的安排输入、输出缓冲区的安排:设进行平衡设进行平衡 2 路归并,路归并,K 2。2K=4,需需 4条磁带。六个初条磁带。六个初 始合并段均匀分布在始合并段均匀分布在 T1、T2。每个合并段有每个合并段有 1000 个记录。个记录。T3、T4 初始为空。设每初始为空。设每 个物理块包含个物理块包含 250 个记录,则每个初始合并段包含个记录,则每个初始合并段包含 4 个物理块。个物理块。K 路合并,路合
18、并,K 个输入个输入 输入缓冲区和一个输出缓冲区。输入缓冲区和一个输出缓冲区。R(1 1000)R(20012000)R(4001.5001)R(1001 2000)R(30014000)R(5001.6000)T1T2T4:空空T3:空空 250 个记录个记录T1T2 250 个记录个记录 250 个记录个记录 250 个记录个记录 250 个记录个记录 250 个记录个记录 250 个记录个记录 250 个记录个记录IBG(Inter Block Gap)初始合并段初始合并段(R(1 1000))250 个记录个记录T3 250 个记录大个记录大 250 个记录大个记录大 K(2)个输入缓
19、冲区个输入缓冲区 250 个记录大个记录大 1个输出缓冲区个输出缓冲区读入内存读入内存读入内存读入内存写入磁带写入磁带注意:对于缓冲区的安排,有一定的原则。注意:对于缓冲区的安排,有一定的原则。2、外部排序的方法、外部排序的方法 10 100 T1T2 150 200 220 300 350 400 1 12 13 14 15 16 17 18初始合并段初始合并段(R(1 8))T3 K(2)个输入缓冲区个输入缓冲区 1 10 1个输出缓冲区个输出缓冲区读入内存读入内存读入内存读入内存写入磁带写入磁带缓冲区的安排举例:缓冲区的安排举例:10 100 1 121 10 另一个初始合并段另一个初始
20、合并段(R(1 8))ij2、外部排序的方法、外部排序的方法 10 100 T1T2 150 200 220 300 350 400 1 12 13 14 15 16 17 18初始合并段初始合并段(R(1 8))T3 K(2)个输入缓冲区个输入缓冲区 12 1个输出缓冲区个输出缓冲区缓冲区的安排举例:缓冲区的安排举例:10 100 1 121 10 另一个初始合并段另一个初始合并段(R(1 8))ij2、外部排序的方法、外部排序的方法 10 100 T1T2 150 200 220 300 350 400 1 12 13 14 15 16 17 18初始合并段初始合并段(R(1 8))T3
21、K(2)个输入缓冲区个输入缓冲区 12 1个输出缓冲区个输出缓冲区读入内存读入内存读入内存读入内存缓冲区的安排举例:缓冲区的安排举例:10 100 13 141 10 另一个初始合并段另一个初始合并段(R(1 8))ij2、外部排序的方法、外部排序的方法 10 100 T1T2 150 200 220 300 350 400 1 12 13 14 15 16 17 18初始合并段初始合并段(R(1 8))T3 K(2)个输入缓冲区个输入缓冲区 1个输出缓冲区个输出缓冲区读入内存读入内存缓冲区的安排举例:缓冲区的安排举例:10 100 13 141 10 另一个初始合并段另一个初始合并段(R(1
22、 8))ij2、外部排序的方法、外部排序的方法 10 100 T1T2 150 200 220 300 350 400 1 12 13 14 15 16 17 18初始合并段初始合并段(R(1 8))T3 K(2)个输入缓冲区个输入缓冲区 1个输出缓冲区个输出缓冲区读入内存读入内存写入磁带写入磁带缓冲区的安排举例:缓冲区的安排举例:10 100 13 141 10 另一个初始合并段另一个初始合并段(R(1 8))ij 13 1413 14 3、多路平衡归并的实现、多路平衡归并的实现 时间分析时间分析:logkm 趟趟 K 大,趟数减少,读写记录的总数将减少。但大,趟数减少,读写记录的总数将减少
23、。但 K 大,会带来什么问题呢?大,会带来什么问题呢?1、带、盘的平衡多路归并的性质:、带、盘的平衡多路归并的性质:e.g:K=2 时时,m 个归并串。总共个归并串。总共 n 个记录。个记录。合并段合并段 1合并段合并段 2合并段合并段 m-1合并段合并段 m中间合并段中间合并段 中间合并段中间合并段 中间合并段中间合并段中间合并段中间合并段有序文件有序文件层数:层数:log2m +1归并趟数:归并趟数:log2m3、多路平衡归并的实现、多路平衡归并的实现1、带、盘的平衡多路归并的性质:、带、盘的平衡多路归并的性质:e.g:K 2 时时,趟数将会减少。趟数将会减少。m 个归并串。总共个归并串。
24、总共 n 个记录。个记录。合并段合并段 1合并段合并段 k合并段合并段 m-1合并段合并段 m中间合并段中间合并段 中间合并段中间合并段有序文件有序文件层数:层数:logkm +1归并趟数:归并趟数:logkm 设从设从 k 个元素中挑选一个最小的元素需个元素中挑选一个最小的元素需(k-1)次比较。次比较。每次比较耗费的时间代价为每次比较耗费的时间代价为:tmg,那么在进行那么在进行 k 路平衡归并时,总的比较时间耗费不会超过:路平衡归并时,总的比较时间耗费不会超过:logkm (k-1)(n-1)tmg=log2m /log2k (k-1)(n-1)tmgk log2m /log2k (k-
25、1)大大大大3、多路平衡归并的实现、多路平衡归并的实现1、带、盘的平衡多路归并的性质:、带、盘的平衡多路归并的性质:设从设从 k 个元素中挑选一个最小的元素需个元素中挑选一个最小的元素需(k-1)次比较。次比较。每次比较耗费的时间代价为每次比较耗费的时间代价为:tmg,那么在进行那么在进行 k 平衡归并时,总的时间耗费不会超过:平衡归并时,总的时间耗费不会超过:logkm (k-1)(n-1)tmg=log2m /log2k (k-1)(n-1)tmgk log2m /log2k (k-1)大大大大 改进:采用胜者树或者败者树,从改进:采用胜者树或者败者树,从 K 个元素中挑选一个最小的元素仅
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 外部排序 外部 排序 PPT 课件
限制150内