外存信息的存取外部排序的方法多路平衡归并的实讲解学习
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
15
11.3 多路平衡归并的实现
设从 k 个元素中挑选一个最小的元素需 ( k-1) 次比较。 每次比较耗费的时间代价为 tmg,在进行 k 路平衡归并时, 要得到m个初始归并段,则内部归并过程中进行的比较的 总的次数为:
logkm × ( k - 1 ) × ( n - 1 ) × tmg = log2m ×( k - 1 ) / log2k × ( n - 1 ) × tmg
盘
可靠读写区 v
记录
记录
记录
1
2
3
t
IRG(Inter Record Gap)记录间隙
3
1、外存信息的存取
•磁带信息的表示:
一种磁化方向、代表1 另一种磁化方向,代表0
01001001 10101111
4
5
1、外存信息的存取
•磁带文件的组织的改进:
块1
块2
块3
IBG(Inter Block Gap)块间间隙
11.2 外部排序的方法
例如:若对上述例子采用2路归并,则只需进行4趟归并, 外排所需总的时间: 10*tIS+500*tIO+4*1000*tmg
若对上述例子采用5路归并,则只需进行2趟归并, 总的访问外存的次数为100+2100=300次
一般情况下,假设待排记录序列含 m 个初始归并段,外排时
始位置的时间。 tw 读/写一个字符的时间; n 字符数。
由于磁带是顺序存取设备,在读一个记录时,必须 先顺序检索,直到所需信息通过读写头时才能得到 。因此检索速度很慢。 磁带主要用于存储顺序存取的大量数据。
7
1、外存信息的存取
2)磁盘:
• 结构:由磁盘驱动器、读、写磁头、活动臂、盘片(磁道、 扇区)、旋转主轴构成。速度快、容量大、直接存取设备。
第 11 章 外部排序
1、外存信息的存取 2、外部排序的方法 3、多路平衡归并的实现 4、置换-选择排序 5、最佳归并树
1
1、外存信息的存取
1、外部排序: 待排序的记录数量巨大,无法一次调入内存,只
能驻留在外存上(磁带、磁盘、CD-ROM)上。不 能使用内部排序的方法进行排序。否则将引起频繁 访问外存。
采用 k路归并,则归并趟数s=logkm,显然,随着k的增
大或m的减小,归并的趟数将减少,因此对外排而言,通常采
用多路归并。k 的大小可选,但需综合考虑各种因素。
14
11.3 多路平衡归并的实现
一、多路平衡归并的性质: •分析: m 个初始归并段,外排时采用 k路归并,则归 并趟数为 logkm , K 大,趟数减少,读写记录的总 数将减少。但 K 大,会使内部归并时间tmg增大?。
11.2 外部排序的方法
例如:假设有一个含10,000个记录的磁盘文件,而 当前所用的计算机一次只能对1,000个记录进行内 部排序,则首先利用内部排序的方法得到10个初始 归并段,然后进行逐趟归并。
假设进行2路归并(即两两归并),则第一趟由10 个归并段得到5个归并段; 第二趟由 5 个归并段得到3个归并段; 第三趟由 3 个归并段得到2个归并段; 最后一趟归并得到整个记录的有序序列。
9
11.2 外部排序的方法
外部排序的基本过程 由相对独立的两个步骤组成: 1.按可用内存大小,利用内部排序方法,构造若干个 记录的有序子序列写入外存,通常称这些记录的有序 子序列为 “归并段”; 2.通过“归并”,逐步扩大(记录的)有序子序列 的长度,直至外存中整个记录序列按关键字有序为 止。
10
• 改进:采用胜者树或者败者树,从 K 个元素中挑选 一个最小的元素仅需 log2k 次比较,这时总的时间耗 费将下降为: log2m × ( n - 1 ) × tmg
16
11.3 多路平衡归并的实现
二、胜者树及其使用 4路平衡归并
1 5
2 5
1234567 5 5 9 5 7 29 9
3 9
4
外部排序主要的时间开销用在信息的内、外存交 换上,所以减少 I/O 时间成为要解决的主要问题。
2
2、常用外存:
1) 磁带:由磁带介质、读、写磁头、驱动器、接收盘和原始盘 组成。便宜、可反复使用、是一种顺序存取设备。查找费时 、速度慢(尤其是查找末端记录时)
磁带机走向
原.
始 盘
读写 出入 头头
.
接 收
12
11.2 外部排序的方法ຫໍສະໝຸດ Baidu
外排总的时间还应包括内部排序所需时间和逐 趟归并时进行内部归并的时间
外部排序总时间=产生初始归并段的时间 m*tIS +外存信息读写时间 d*tIO +内部归并所需时间 s*utmg
tIO值取决于外存,远远大于tIS和tmg。 外部排序的 时间取决于读写外存的次数d。
13
5
6
7
5
7
29
9
输5
7
29
9
输
5
入 16
12
38
22
出
缓 49
25
57
47
缓
冲
52
78
84 91
66 71
48
59
冲
区
区
17
11.3 多路平衡归并的实现
二、胜者树及其使用
1 7
4路平衡归并
12345 7 7 9 16 7
8
2)磁盘:
•种类:固定头磁盘、活动头磁盘
•固定头磁盘:每个磁道都有一个磁头(速度快) •活动头磁盘:每个盘面共用一个磁头,增加了找道的时 间,应用广泛。
• 柱面:各盘面的直径相同的磁道的总和。 • 物理位置:柱面号、磁道号、块(扇区号) • 盘文件的读写时间:T i/o = tseck + tla + n×twm tseck (0.1秒) :找道时间; tla (<25豪秒) :等待时间 twm (105个字符/秒):传输时间/ 字符,n 字符数。
IBG:.5~.75 inch,带来的好处是磁带的利用率上升 如上例:设 每一块包含20个记录 每一块所占 20 × 80/1600 =1 inch
利用率= 1/1+0.75 = 57%
6
1、外存信息的存取
•磁带文件的读写时间:T i/o = ta + n×tw ta 延迟时间:读写头到达相应的物理块的起
11
11.2 外部排序的方法
分析上述外排过程中访问外存(对外存进行读/写)的次数:
假设“数据块”的大小为200,即每一次访问外存可 以读/写200个记录。 则对于10,000个记录,处理一遍需访问外存100次(读 和写各50次)。 1)求得10个初始归并段需访问外存100次; 2)每进行一趟归并需访问外存100次; 3)总计访问外存 100 + 4 100 = 500次
11.3 多路平衡归并的实现
设从 k 个元素中挑选一个最小的元素需 ( k-1) 次比较。 每次比较耗费的时间代价为 tmg,在进行 k 路平衡归并时, 要得到m个初始归并段,则内部归并过程中进行的比较的 总的次数为:
logkm × ( k - 1 ) × ( n - 1 ) × tmg = log2m ×( k - 1 ) / log2k × ( n - 1 ) × tmg
盘
可靠读写区 v
记录
记录
记录
1
2
3
t
IRG(Inter Record Gap)记录间隙
3
1、外存信息的存取
•磁带信息的表示:
一种磁化方向、代表1 另一种磁化方向,代表0
01001001 10101111
4
5
1、外存信息的存取
•磁带文件的组织的改进:
块1
块2
块3
IBG(Inter Block Gap)块间间隙
11.2 外部排序的方法
例如:若对上述例子采用2路归并,则只需进行4趟归并, 外排所需总的时间: 10*tIS+500*tIO+4*1000*tmg
若对上述例子采用5路归并,则只需进行2趟归并, 总的访问外存的次数为100+2100=300次
一般情况下,假设待排记录序列含 m 个初始归并段,外排时
始位置的时间。 tw 读/写一个字符的时间; n 字符数。
由于磁带是顺序存取设备,在读一个记录时,必须 先顺序检索,直到所需信息通过读写头时才能得到 。因此检索速度很慢。 磁带主要用于存储顺序存取的大量数据。
7
1、外存信息的存取
2)磁盘:
• 结构:由磁盘驱动器、读、写磁头、活动臂、盘片(磁道、 扇区)、旋转主轴构成。速度快、容量大、直接存取设备。
第 11 章 外部排序
1、外存信息的存取 2、外部排序的方法 3、多路平衡归并的实现 4、置换-选择排序 5、最佳归并树
1
1、外存信息的存取
1、外部排序: 待排序的记录数量巨大,无法一次调入内存,只
能驻留在外存上(磁带、磁盘、CD-ROM)上。不 能使用内部排序的方法进行排序。否则将引起频繁 访问外存。
采用 k路归并,则归并趟数s=logkm,显然,随着k的增
大或m的减小,归并的趟数将减少,因此对外排而言,通常采
用多路归并。k 的大小可选,但需综合考虑各种因素。
14
11.3 多路平衡归并的实现
一、多路平衡归并的性质: •分析: m 个初始归并段,外排时采用 k路归并,则归 并趟数为 logkm , K 大,趟数减少,读写记录的总 数将减少。但 K 大,会使内部归并时间tmg增大?。
11.2 外部排序的方法
例如:假设有一个含10,000个记录的磁盘文件,而 当前所用的计算机一次只能对1,000个记录进行内 部排序,则首先利用内部排序的方法得到10个初始 归并段,然后进行逐趟归并。
假设进行2路归并(即两两归并),则第一趟由10 个归并段得到5个归并段; 第二趟由 5 个归并段得到3个归并段; 第三趟由 3 个归并段得到2个归并段; 最后一趟归并得到整个记录的有序序列。
9
11.2 外部排序的方法
外部排序的基本过程 由相对独立的两个步骤组成: 1.按可用内存大小,利用内部排序方法,构造若干个 记录的有序子序列写入外存,通常称这些记录的有序 子序列为 “归并段”; 2.通过“归并”,逐步扩大(记录的)有序子序列 的长度,直至外存中整个记录序列按关键字有序为 止。
10
• 改进:采用胜者树或者败者树,从 K 个元素中挑选 一个最小的元素仅需 log2k 次比较,这时总的时间耗 费将下降为: log2m × ( n - 1 ) × tmg
16
11.3 多路平衡归并的实现
二、胜者树及其使用 4路平衡归并
1 5
2 5
1234567 5 5 9 5 7 29 9
3 9
4
外部排序主要的时间开销用在信息的内、外存交 换上,所以减少 I/O 时间成为要解决的主要问题。
2
2、常用外存:
1) 磁带:由磁带介质、读、写磁头、驱动器、接收盘和原始盘 组成。便宜、可反复使用、是一种顺序存取设备。查找费时 、速度慢(尤其是查找末端记录时)
磁带机走向
原.
始 盘
读写 出入 头头
.
接 收
12
11.2 外部排序的方法ຫໍສະໝຸດ Baidu
外排总的时间还应包括内部排序所需时间和逐 趟归并时进行内部归并的时间
外部排序总时间=产生初始归并段的时间 m*tIS +外存信息读写时间 d*tIO +内部归并所需时间 s*utmg
tIO值取决于外存,远远大于tIS和tmg。 外部排序的 时间取决于读写外存的次数d。
13
5
6
7
5
7
29
9
输5
7
29
9
输
5
入 16
12
38
22
出
缓 49
25
57
47
缓
冲
52
78
84 91
66 71
48
59
冲
区
区
17
11.3 多路平衡归并的实现
二、胜者树及其使用
1 7
4路平衡归并
12345 7 7 9 16 7
8
2)磁盘:
•种类:固定头磁盘、活动头磁盘
•固定头磁盘:每个磁道都有一个磁头(速度快) •活动头磁盘:每个盘面共用一个磁头,增加了找道的时 间,应用广泛。
• 柱面:各盘面的直径相同的磁道的总和。 • 物理位置:柱面号、磁道号、块(扇区号) • 盘文件的读写时间:T i/o = tseck + tla + n×twm tseck (0.1秒) :找道时间; tla (<25豪秒) :等待时间 twm (105个字符/秒):传输时间/ 字符,n 字符数。
IBG:.5~.75 inch,带来的好处是磁带的利用率上升 如上例:设 每一块包含20个记录 每一块所占 20 × 80/1600 =1 inch
利用率= 1/1+0.75 = 57%
6
1、外存信息的存取
•磁带文件的读写时间:T i/o = ta + n×tw ta 延迟时间:读写头到达相应的物理块的起
11
11.2 外部排序的方法
分析上述外排过程中访问外存(对外存进行读/写)的次数:
假设“数据块”的大小为200,即每一次访问外存可 以读/写200个记录。 则对于10,000个记录,处理一遍需访问外存100次(读 和写各50次)。 1)求得10个初始归并段需访问外存100次; 2)每进行一趟归并需访问外存100次; 3)总计访问外存 100 + 4 100 = 500次