- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课堂习题4
第10章 内部排序
第9章 排序
选择题
1.下列排序方法中,哪一种是稳定的排序方法:(B)
A)选择排序 B )归并排序 C)快速排序 D)希尔排序
2.快速排序每次划分的效果好坏和以下何种因素有直接关系:(C )
A)关键字的排列情况 B)数据元素的个数
C )轴的相对大小 D)关键字值的最大值
3.对以下几个关键字序列进行快速排序,以第一个元素为轴,一次划分效果最好的是:( c)
A)1,2,3,4,5 B)2,1,3,4,5
C )3,1,2,4,5 D)5,3,1,2,4
4.对以下几个关键字序列进行快速排序,以第一个元素为轴,一次划分效果不好的是:(D)
A)4,1,2,3,6,5,7 B)4,3,1,7,6,5,2
C)4,2,1,3,6,7,5 D )1,2,3,4,5,6,7
5.设待排序数据元素序列为[4,1,2,3 ],应用一种排序方法进行递增序排序,已知一趟后的结果为[1,2,3,4 ],则所选用的排序方法为:( C )
A)直接插入 B)直接选择
C )冒泡(从前向后) D)C 冒泡(从后向前)
6.排序方法中,关键字的比较次数与记录的初始排列无关的是:(C )
A)希尔排序 B)归并排序(有关)
C )直接选择排序 D)直接插入排序
7.下列字符序列中,不符合堆定义的为:(C)
A)ACDGHMPQRX B)ACMDHPXGQR
C)ADPRCQXMHG D)ADCMPGHXRQ
三、填空题
排序是指将无序的数据元素序列转变成一个有序序列,把序列中的记录,通过某些方法整理成按 关键字 递增或递减次序排列的处理过程。
排序算法分成 内部排序算法 和 外部排序算法 。
排序算法的稳定性是指 关键字值 相同的记录经过排序后的 相对位置 是否发生变化,永不发生变化的排序算法,就是 稳定的 ;否则就是 不稳定的 。
排序算法的基本操作是 关键字的比较 和 关键字的移动 。
排序算法的 时间效率 取决于关键字的比较和记录的移动等基本操作的次数。
1对插入、选择、快速、和归并四种排序算法,回答下列问题。)
(1)在待排序的元素序列基本有序时,效率最高的排序方法是那一种?答:插入排序
(2)排序要求内存量最大的排序方法是那一种?答:归并排序
(3)关键字比较次数与元素的初始排列次序无关的排序方法是那一种?答:选择排序
(4)写出其中排序不稳定的方法。答:选择排序、快速排序
2 设有6 0 0 0个无序的元素,若希望最快的选出前l 0个最大的元素,问在快速排序、堆排序、归并排序、希尔排序中,采用那—种算法最好?为什么?
解答:虽然这些都是高速排序,但快速排序、归并排序、希尔排序和基数排序都是排序结束后才能最后决定数据元素的个数的次序。而堆排序则是每次就取出一个最大的元素,只要10次就能取出10个最大的元素。因此堆排序最好。
5、以关键字序列(265,301,751,129,937,863,742,694,076,438)为例,分别写出执行以下排序算法的各趟排序结束时,关键字序列的状态。
(1) 直接插入排序 (2)希尔排序 (3)冒泡排序 (4)快速排序
(5) 直接选择排序 (6) 堆排序 (7) 归并排序 上述方法中,哪些是稳定的排序?哪些是非稳定的排序?对不稳定的排序试举出一个不稳定的实例。
在上面的排序方法中,直接插入排序、冒泡排序、归并排序和基数排序是稳定的,其他排序算法均是不稳定的,现举实例如下:以带*号的表示区别。
希尔排序:[8,1,10,5,6,*8]
快速排序:[2,*2,1]
直接选择排序:[2,*2,1]
堆排序:[2,*2,1]
6 判别下列序列是否为堆(小根堆或大根堆),若不是,则将其调整为堆:
(1) (100,86,48,73,35,39,42,57,66,21);
(2) (12,70,33,65,24,56,48,92,86,33);
(3) (103,97,56,38,66,23,42,12,30,52,06,20);
(4) (05,56,20,23,40,38,29,61,35,76,28,100).
堆的性质是:任一非叶结点上的关键字均不大于(或不小于)其孩子结点上的关键字。据此我们可以通过画二叉树来进行判断和调整:
(1) 此序列是大根堆。
(2) 此序列不是堆,经调整后成为小根堆:
(12,24,33,65,33,56,48,92,86,70)
(3) 此序列是一大根堆。
(4) 此序列不是堆,经调整后成为小根堆:
(05,23,
文档评论(0)