第10章 排序答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
15.最好每次划分能得到两个长度相等的子文件。设文件长度 n=2k-1,第一遍划分得到两个
长度 n/2 的子文件,第二遍划分得到 4 个长度 n/4 的子文件,以此类推,总共进行
k=log2(n+1)遍划分,各子文件长度均为 1,排序结束。
16.O(n2)
17. O(nlog2n)
18.(1)2*i (2)r[j].key>r[j+1].key (3)true
26. 程 序 (a)(1)true
(2)a[i]:=t
(3)2 TO n step 2
(4)true
(5)NOT flag
程 序 (b)(1)1
(2)a[i]=t
(3)(i=2;i<=n;i+=2)
(4)1
(5)flag
27.(Q,A,C,S,Q,D,F,X,R,H,M,Y),(F,H,C,D,Q,A,M,Q,R,S,Y,X)
三、填空题
1. 比较,移动 2.生成有序归并段(顺串),归并 3.希尔排序、简单选择排序、快速
排序、堆排序等
4. 冒泡,快速 5. (1)简单选择排序 (2)直接插入排序(最小的元素在最后时)
6. 免去查找过程中每一步都要检测整个表是否查找完毕,提高了查找效率。
7.
n(n-1)/2
8.题中 p 指向无序区第一个记录,q 指向最小值结点,一趟排序结束,p 和 q 所指结点值交
第 10 章 排序(参考答案)
一、选择题ቤተ መጻሕፍቲ ባይዱ
1.D 2.D 3.D 4.B 5.B 6.B 7.C, 8.A 9.C 10.C,D,F 11.1D,C
E
11.2A,D,F
11.3B
12.C 13. 14.B 15. 16.D 17. 18. 19.A 20. 21.
11.4(A,C,F)(B,D,E) ,D A ,D D
(1)q->link!=NULL (2)r!=p (3)p->link (4)p->link=s
(5)p=p->link
10.(1)i<n-i+1 (2)j<=n-i+1 (3)r[j].key<r[min].key (4)min!=i (5)max==i
(6)r[max]<-->r[n-i+1]
11.(1)N (2)0 (3)N-1
23.(1)finish:=false (2)h[i]:=h[j]; i:=j; j:=2*j; (3)h[i]:=x
(4)h,k,n
(5)sift(h,1,r-1)
24. {D,Q,F,X,A,P,B,N,M,Y,C,W}
25. (1)p[k]:=j (2)i:=i+1 (3)k=0 (4)m:=n (5)m<n (6)a[i]:=a[m] (7)a[m]:=t
50. 51. 52.E 53. 54.C 55. 56.B 57. 58.A 59.1C 59.2A 59.3D 59.4B
D C ,G B
C
B
59.5G
60.1B
60.2C 61.1B 61.2D 61.3B 61.4C 61.5F 62.A 63. 64. 65.A 66.
60.3A
AB
A
部分答案解释如下:
二、判断题
1.√ 2.× 3.× 4.× 5.× 6.× 7.× 8.× 9.× 10. 11. 12. 13.
××××
14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
√√×××××××××√×
27. 28. 29. 30. 31.
√×××√
部分答案解释如下:
(6) j:=2*i (7)r[i]:=t;
(8)sift(r,i,n)
(9)r[1]:=r[i]
(10)sift(r,1,i-1)
21. ④是堆 (1)选择 (2)筛选法 (3)O(nlog2n) (4)O(1)
22. (1) 选择 (2)完全二叉树
(3)O(Nlog2N) (4)O(1) (5)满足堆的性质
CA
CC
22. 23. 24.C 25. 26.C 27. 28.C 29. 30.C 31. 32. 33.A 34. 35.
BC
A
D
B ,B D D
DA
36. 37. 38.C 39. 40.C 41. 42.B 43. 44.B 45. 46. 47.B 48. 49.
AA
B
C
A
A C ,D D D
5. 错误。例如冒泡排序是稳定排序,将 4,3,2,1 按冒泡排序排成升序序列,第一趟变成
3,2,1,4,此时 3 就朝向最终位置的相反方向移动。
12. 错误。堆是 n 个元素的序列,
可以看作是完全二叉树,但相对于根并无左小右大的要求,故其既不是二叉排序树,更不会
是平衡二叉树。
22. 错误。待排序序列为正序时,简单插入排序比归并排序快。
(4)1
(5)R[P].KEY<R[I].KEY
(6)R[P].LINK
(7)(N+2)(N-1)/2
(8)N-1 (9)0 (10)O(1)(每个记录增加一个字段)
(11)稳定 (请注意 I
的步长为-1)
12. 3,(10,7,-9,0,47,23,1,8,98,36)
13. 快 速
14.(4,1,3,2,6,5,7)
(4)r[j] (5)2*i
19.(1)2*i (2)j<=r (3)j ← j+1 (4)x.key>heap[j].key (5)i ← j (6)j ← 2*i
(7)x
20.(1)j:=2*i (2)finished:=false (3)(r[j].key>r[j+1].key) (4)r[i]:=r[j] (5)i:=j
换,同时向后移 p 指针。(1)!=null
(2)p->next (3)r!=null (4)r->data<q->data
(5)r->next (6)p->next
9. 题中为操作方便,先增加头结点(最后删除),p 指向无序区的前一记录,r 指向最小值
结点的前驱,一趟排序结束,无序区第一个记录与 r 所指结点的后继交换指针。
18. 对于后三种排序方法两趟排序后,序列的首部或尾部的两个元素应是有序的两个极值,
而给定的序列并不满足。
20. 本题为步长为 3 的一趟希尔排序。
24.枢轴是 73。
49. 小根堆中,关键字最大的记录只能在叶结点上,故不可能在小于等于 n/2 的结点上。
64. 因组与组之间已有序,故将 n/k 个组分别排序即可,基于比较的排序方法每组的时间下 界为 O(klog2k),全部时间下界为 O(nlog2k)。