数据结构-_外部排序
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 归并趟数:
logkm where k 是路数;m 是初始合并段数。 如:m=6,那么 log26 = 3 而 log36 = 2 此外,还有一次生成所有合并段的时间。对 文件中的所有的记录全部读写一次。
每一趟归并时,对文件中的所有的记录都要全部读写一次。K 大,趟数减
少,读写记录的总数将减少。但 K 大,需要的内存将越多。 3
• 外部合并:将上一阶段生成的合并段调入内存,进行合并,直至最后形成一个有序的文
件。
• 平衡合并分类法:被合并的初始合并段均匀分布在 K 条磁带上,即分布在 T1、T2、 …… Tk 上。对这 K 条带进行合并,将生成的中间归并段分布在 TK+1、 TK+2 、…… T2K 上。然后,循环往复,直至最后形成一个 单一的合并段为止。
logkm × log2k × ( n - 1 ) × tmg = log2m × ( n - 1 ) × tmg 有意思的是该结果和 k 无关,这是通过多用空间换来的。
• 改进:采用胜者树,K 个元素中最小的元素输出之后,从根结点到它的相应的叶子结 点路径上的结点都需要进行修改,为了加快程序运行的速度产生了败者树。
区
注意:挑出冠军
输
5
需要进行 k-1 次
出
Leabharlann Baidu
比较,此处需要
缓
比较 3 次。
冲
区
7
EXST
8 物料管理
3、多路平衡归并的实现
Algorithms and DataStructures:EXSORT
大
k
log2m / log2k × ( k - 1 ) 大
4
EXST
5 物料管理
3、多路平衡归并的实现
Algorithms and DataStructures:EXSORT
1、带、盘的平衡多路归并的性质:
• 改进:采用胜者树或者败者树,从 K 个元素中挑选一个最小的元素仅需 log2k 次比 较,这时总的时间耗费将下降: logkm × log2k × ( n - 1 ) × tmg = log2m × ( n - 1 ) × tmg
1 物料管理
1、外存信息的存取
Algorithms and DataStructures:EXSORT
1、外部排序:
内部排序:信息一次可全部调入内存,信息在内存中的处理时间是主要的时间耗费。
外部排序:信息量巨大,无法一次调入内存。只能驻留在带、盘。特点为内存运行时 间短,内、外存进行交换需要时间长。减少 I/O 时间成为主要矛盾。
6
EXST
7 物料管理
3、多路平衡归并的实现
3、败者树及其使用
0
5
1
9
01
59
2
3
7
29
Algorithms and DataStructures:EXSORT
234567 7 29 5 7 29 9
4
5
6
7
5
7
29
9
输
5
7
29
9
入
16
12
38
22
缓
49
25
57
47
52
84
66
48
冲
78
91
71
59
2、基本术语: • 记录(Record):数据项的集合存于内存,称之为结点。如果存之于外存,则叫做记 录。原因起源于是在历史上研究管理应用和计算机科学的两部分人 员的习惯。
• 域(场):记录中的每个数据项,称之为域(Field) 。 • 文件:记录的集合。 • 关键字:唯一标识记录的域,称之为关键字。 • 有序文件:文件根据关键字的大小。排成递增或递减的序列。 3、常用外存: • 磁带:由磁带介质、读、写磁头、驱动器、接收盘和原始盘组成。
1
5
2
3
5
9
4
5
6
7
5
7
29
9
输5
7
29
9
入 16
12
38
22
缓 49
25
57
47
52
84
66
48
冲
78
91
71
59
区
1234567 5 5 9 5 7 29 9
输5 出 缓 冲 区
注意:挑出冠军 需要进行 k-1 次 比较,此处需要 比较 3 次。 5
EXST
6 物料管理
3、多路平衡归并的实现
Algorithms and DataStructures:EXSORT
EXST
4 物料管理
3、多路平衡归并的实现
Algorithms and DataStructures:EXSORT
1、带、盘的平衡多路归并的性质: logkm 趟 • e.g: K > 2 时, 趟数将会减少。m 个归并串。总共 n 个记录。
合并段 1
合并段 k
合并段 m-1
合并段 m
中间合并段
中间合并段
便宜、可反复使用、是一种顺序存取设备。
查找费时、速度幔。
1
EXST
2 物料管理
1、外存信息的存取
3、常用外存: • 带文件的组织的改进:
块1
块2
Algorithms and DataStructures:EXSORT
块3
IBG(Inter Block Gap)块间间隙
B.F(块因子) = 一个物理记录包含逻辑记录的个数 带的利用率上升,如上例: •盘文件的位置:盘组号、柱面号、磁道号、块(扇区号) •盘文件的读写时间:T i/o = tseck + tla + n×twm
层数:
logkm +1
归并趟数:
logkm
有序文件
• 设从 k 个元素中挑选一个最小的元素需 ( k-1) 次比较。 每次比较耗费的时间代价为:
tmg,那么在进行 k 路平衡归并时,总的比较时间耗费不会超过:
logkm
× ( k - 1 ) × ( n - 1 ) × tmg = log2m / log2k × ( k - 1 ) × ( n - 1 ) × tmg
2、胜者树及其使用 • 胜者进入下一轮,直至决出本次比赛的冠军。决出冠军之后,充分利用上一次比赛的 结果,使得更快地挑出亚军、第三名 …… 。 决出第一名需比较: k - 1 次 决出第二名需比较: log2k 次 决出第三名需比较: log2k 次
• 结果:采用胜者树后,从 K 个元素中挑选一个最小的元素仅需 log2k 次比 较,这时总的时间耗费下降为:
tseck :找道时间 tla :等待时间 twm :传输时间/ 字符,n 字符数。
2
EXST
3 物料管理
2、外部排序的方法
Algorithms and DataStructures:EXSORT
1、步骤: • 生成合并段(run):读入文件的部分记录到内存 -> 在内存中进行内部排序 -> 将排好序的这些记录写入外存,形成合并段 -> 再读入该文件 的下面的记录,往复进行,直至文件中的记录全部形成合并段 为止。 7、15、19 8、11、13 16、23、31 5、12