第十章习?/p>
10.1
磁盘平衡归并和磁带平衡归并在时间上有否差别?如果有,差别在何处?如果没有?
请说明理由?
10.2
败者树中的败者指的是什么?若利用败者树?/p>
k
个数中的最大值,在某次比较中得到
a>b
,那么谁是败者?败者树与堆有何区别?/p>
10.3
试问输入文件在哪种状态下,经由置换选择排序法得到的初始归并段长度最长?其最
长的长度是多少?
10.4
假如对一个经由置换选择排序法得到的输出文件再次进行置换选择排序?/p>
试问该文件将
产生什么变化?
10.5
设内存有大小?/p>
6
个记录的区域可供内部排序之用?/p>
文件的关键字序列为:
?/p>
51
?/p>
49
?
39
?/p>
46
?/p>
38
?/p>
29
?/p>
14
?/p>
61
?/p>
15
?/p>
30
?/p>
1
?/p>
48
?/p>
52
?/p>
3
?/p>
63
?/p>
27
?/p>
4
?/p>
13
?/p>
89
?/p>
24
?/p>
46
?/p>
58
?/p>
33
?/p>
76
)。试列出?/p>
?/p>
1
?/p>
用内部排序方法求出的初始归并段;
?/p>
2
)用置换选择排序法得到的初始归并段?/p>
10.6
假设某文件经内部排序得到
100
个初始归并段,试问:
?/p>
1
)若要使多路归并三趟完成排序,则应取归并的路数至少为多少?/p>
?/p>
2
)假如操作系统要求一个程序同时可用的输入、输出文件的总数不超?/p>
13
,则按多?
归并至少需几趟可完成排序?如果限定这个趟数,则可取的最低路数是多少?/p>
10.7
假设一?/p>
I/O
的物理块大小?/p>
150
,每次可?/p>
750
个记录进行内部排序,那么对含?
150000
个记录的磁盘文件进行
4
路平衡归并排序时,需进行多少?/p>
I/O
?/p>
10.8
手工执行算法
k-merge
,追踪败者树的变化过程。假设初始归并段如下?/p>
?/p>
10
?/p>
15
?/p>
16
?/p>
20
?/p>
31
?/p>
39
?/p>
+
∞)?/p>
?/p>
9
?/p>
18
?/p>
20
?/p>
25
?/p>
36
?/p>
48
?/p>
+
∞)?/p>
?/p>
20
?/p>
22
?/p>
40
?/p>
50
?/p>
67
?/p>
79
?/p>
+
∞)?/p>
?/p>
6
?/p>
15
?/p>
25
?/p>
34
?/p>
42
?/p>
46
?/p>
+
∞)?/p>
?/p>
12
?/p>
37
?/p>
48
?/p>
55
?/p>
+
∞)?/p>
?/p>
84
?/p>
95
?/p>
+
∞)?/p>
10.9
已知某文件经过置换选择排序之后,得到长度分别为
47
?/p>
9
?/p>
39
?/p>
18
?/p>
4
?/p>
12
?/p>
23
?/p>
7
的八个初始归并段?/p>
试用
3
路平衡归并设计一个读写外存次数最少的归并方案?/p>
并求出读?/p>
外存的次数?/p>
第十?/p>
内部排序
10.23
void Insert_Sort1(SqList &L)//
监视哨设在高下标端的插入排序算法
{
k=L.length;
for(i=k-1;i;--i) //
从后向前逐个插入排序