【考研类试卷】计算机学科专业基础综合数据结构-排序(二)及答案解析.doc
《【考研类试卷】计算机学科专业基础综合数据结构-排序(二)及答案解析.doc》由会员分享,可在线阅读,更多相关《【考研类试卷】计算机学科专业基础综合数据结构-排序(二)及答案解析.doc(23页珍藏版)》请在麦多课文档分享上搜索。
1、计算机学科专业基础综合数据结构-排序(二)及答案解析(总分:100.00,做题时间:90 分钟)一、单项选择题(总题数:30,分数:31.00)1.下面给出的 4种排序方法中,_排序法是不稳定性排序法。(分数:1.00)A.插入B.冒泡C.二路归并D堆2.下列内部排序算法中,其比较次数(或交换次数)与序列初态无关的算法是_。(分数:1.00)A.快速排序B.直接插入排序C.二路归并排序D.冒泡排序3.下列内部排序算法中,在初始序列已基本有序(除去 n个元素中的某 k个元素后即呈有序,kn)的情况下,排序效率最高的算法是_。(分数:1.00)A.冒泡排序B.堆排序C.直接插入排序D.二路归并排序
2、4.下列排序算法中,_每一趟都能选出一个元素放在最终位置上,并且是不稳定的。(分数:1.00)A.冒泡排序B.希尔排序C.简单选择排序D.直接插入排序5.下列排序方法中,时间复杂性不受数据初始状态影响,恒为 O(log 2 n)的是_。(分数:1.00)A.堆排序B.冒泡排序C.直接选择排序D.快速排序6.下列排序算法中,某一趟结束后未必能选出一个元素放在其最终位置上的是_。(分数:1.00)A.选择排序B.冒泡排序C.归并排序D.堆排序7.下列排序算法中,在每一趟都能选出一个元素放到其最终位置上,并且其时间性能受数据初始特性影响的是_。(分数:1.00)A.直接插入排序B.归并排序C.直接选
3、择排序D.堆排序对初始状态为递增序列的表按递增顺序排序,最省时间的是( 8 )算法,最费时间的是( 9 )算法。 A.堆排序 B.快速排序 C.插入排序 D.归并排序(分数:2.00)A.B.C.D.A.B.C.D.8.如果只想得到 1000个元素组成的序列中第 5个最小元素之前的部分排序的序列,用_方法最快。(分数:1.00)A.冒泡排序B.快速排序C.简单选择排序D.堆排序9.数据表 A中有 10000个元素,如果仅要求求出其中最大的 10个元素,则采用_方法最节省时间。(分数:1.00)A.堆排序B.希尔排序C.快速排序D.直接选择排序10.若对序列(tang,deng,an,wang,
4、shi,bai,fang,liu)采用简单选择排序法按字典顺序进行排序,下面给出的四个序列中,第三趟的结果是_。(分数:1.00)A.an,bai,deng,wang,tang,fang,shi,liuB.an,bai,deng,wang,shi,tang,fang,liuC.an,bai,deng,wang,fang,shi,tang,liuD.an,bai,deng,wang,shi,liu,tang,fang11.从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为_排序法。(分数:1.00)A.插入B.选择C.希尔D.二路归并
5、12.若用冒泡排序方法对序列10,14,26,29,41,52从大到小排序,需进行_次比较。(分数:1.00)A.3B.10C.15D.2513.下列_是一个堆。(分数:1.00)A.19,75,34,26,97,56B.97,26,34,75,19,56C.19,56,26,97,34,75D.19,34,26,97,56,7514.若一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第 1个记录为基准得到的一次划分结果为_。(分数:1.00)A.38,40,46,56,79,84B.40,38,46,79,56,84C.40,38,46,56,79,84D.
6、40,38,46,84,56,7915.采用简单选择排序,比较次数与移动次数分别为_。 A.O(n),O(log 2n) B.O(log2n),O(n 2) C.O(n2),O(n) D.O(nlog2),O(n)(分数:1.00)A.B.C.D.16.就排序算法所用的辅助空间而言,堆排序、快速排序、归并排序的关系是_。(分数:1.00)A.堆排序快速排序归并排序B.堆排序归并排序快速排序C.堆排序归并排序快速排序D.堆排序快速排序归并排序17.一组记录的关键码为(25,48,16,35,79,82,23,40,36,72),其中,含有 5个长度为 2的有序表,按归并排序的方法对该序列进行一趟
7、归并后的结果为_。(分数:1.00)A.16,25,35,48,23,40,79,82,36,72B.16,25,35,48,79,82,23,36,40,72C.16,25,48,35,79,82,23,36,40,72D.16,25,35,48,79,23,36,40,72,8218.已知 10个数据元素为(54,28,16,34,73,62,95,60,26,43),对该序列按从小到大排序,经过一趟冒泡排序后的序列为_。(分数:1.00)A.16,28,34,54,73,62,60,26,43,95B.28,16,34,54,62,73,60,26,43,95C.28,16,34,54,
8、62,60,73,26,43,95D.16,28,34,54,62,60,73,26,43,9519.用某种排序方法对线性表(25,84,21,47,15,27,68,35,20)进行排序时,元素序列的变化情况如下: (1)25,84,21,47,15,27,68,35,20 (2)20,15,21,25,47,27,68,35,84 (3)15,20,21,25,35,27,47,68,84 (4)15,20,21,25,27,35,47,68,84 其所采用的排序方法是_。(分数:1.00)A.直接选择排序B.希尔排序C.归并排序D.快速排序20.在对一组记录(50,40,95,20,15
9、,70,60,45,80)进行直接插入排序时,当把第 7个记录 60插入到有序表时,为寻找插入位置需比较_次。(分数:1.00)A.1B.2C.3D.421.将两个各有 N个元素的有序表归并成一个有序表,其最少的比较次数是_。(分数:1.00)ANB.2N-1C.2ND.N-122.已知待排序的 n个元素可分为 n/k个组,每个组包含 k个元素,且任一组内的各元素均分别大于前一组内的所有元素和小于后一组内的所有元素,若采用基于比较的排序,其时间下界应为_。(分数:1.00)A.O(nlog2n)B.O(nlog2k)C.O(klog2n)D.O(klog2k)23.已知关键序列 5,8,12,
10、19,28,20,15,22 是小根堆(最小堆),插入关键字 3,调整后得到的小根堆是_。(分数:1.00)A.3,5,12,8,28,20,15,22,19B.3,5,12,19,20,15,22,8,28C.3,8,12,5,20,15,22,28,19D.3,12,5,8,28,20,15,22,1924.归并排序中,归并的趟数是_。 A.O(n) B.O(log2n) C.O(nlog2n) D.O(n2)(分数:1.00)A.B.C.D.25.有一组数据(15,9,7,8,20,-1,7,4),用堆排序的筛选方法建立的初始堆为_。(分数:1.00)A.-1,4,8,9,20,7,15
11、,7B.-1,7,15,7,4,8,20,9C.-1,4,7,8,20,15,7,9D.A、B、C 均不对26.基于比较方法的 n个数据的内部排序,最坏情况下的时间复杂度能达到的最好下界是_。 A.O(nlog2n) B.O(log2n) C.O(n) D.O(n2)(分数:1.00)A.B.C.D.27.以下排序方法中,稳定的排序方法是_。(分数:1.00)A.直接插入排序B.直接选择排序C.堆排序D.基数排序28.在对一组记录(50,40,95,20,15,70,60,45,80)进行希尔排序时,假定 d 0 =9,d 1 =4,d 2 =2,d 3 =1,则第二趟排序结束后前 4条记录为
12、_。(分数:1.00)A.(50,20,15,70)B.(60,45,80,50)C.(15,20,50,40)D.(15,20,80,70)29.在归并排序中,若待排序记录的个数为 20,则共需要进行_趟归并,在第三趟归并中,是把长度为_的有序表归并为长度为_的有序表。(分数:1.00)A.5,4,8B.6,3,9C.7,4,3D.3,8,2二、综合应用题(总题数:24,分数:69.00)30.在执行某种排序算法的过程中出现了排序码朝着最终排序序列相反的方向移动,从而认为该排序算法是不稳定的,这种说法对吗?为什么? (分数:2.00)_31.设有 5个互不相同的元素 a,b,c,d,e,能否
13、通过 7次比较就将其排好序?如果能,请列出其比较过程 i如果不能,则说明原因。 (分数:2.00)_32.对一个由 n个关键字不同的记录构成的序列,能否用比 2n-3少的次数选出该序列中关键字取最大值和关键字取最小值的记录?请说明如何实现?在最坏的情况下至少要进行多少次比较? (分数:2.00)_33.利用比较的方法进行排序,在最坏的情况下能达到的最好时间复杂性是什么?请给出详细证明。 (分数:3.00)_34.已知下列各种初始状态(长度为 n)元素,试问当利用直接插入法进行排序时,至少需要进行多少次比较(要求排序后的文件按关键字从大到小顺序排列)? (1)关键字自小到大有序(key 1 ke
14、y 2 key n ); (2)关键字自大到小逆序(key 1 key 2 key n ); (3)奇数关键字顺序有序,偶数关键字顺序有序(key 1 key 3 ),key 2 key 4 ); (4)前半部分元素按关键字顺序有序,后半部分元素按关键字顺序逆序(key 1 key 2 key m ,key m+1 key m+2 key n ,m 为中间位置)。 (分数:3.00)_35.对于 n个元素组成的线性表进行快速排序时,所需进行的比较次数与这 n个元素的初始排序有关。问:(1)当 n=7时,在最好情况下需进行多少次比较?请说明理由。 (2)当 n=7时,给出一个最好情况的初始排序的
15、实例。 (3)当 n=7时,在最坏情况下需进行多少次比较?请说明理由。 (4)当 n=7时,给出一个最坏情况的初始排序的实例。 (分数:3.00)_36.关于堆的一些问题: (1)堆的存储表示是顺序的,还是链接的? (2)设有一个最小堆,即堆中任意结点的关键字均大于它的左孩子和右孩子的关键字。其具有最大值的元素可能在什么地方? (3)对 n个元素进行初始建堆的过程中,最多做多少次数据比较(不用大 O表示法)? (分数:3.00)_37.若有 N个元素已构成一个小根堆,那么如果增加一个元素为 K n+1 请用文字简要说明如何在 log 2 n的时间内将其重新调整为一个堆。 (分数:3.00)_3
16、8.冒泡排序方法是把大的元素向上移(气泡的上浮),也可以把小的元素向下移(气泡的下沉)。请给出上浮和下沉过程交替的冒泡排序算法。 (分数:3.00)_39.有一种简单的排序算法,叫做计数排序(count sorting)。这种排序算法对一个待排序的表(用数组表示)进行排序,并将排序结果存放到另一个新的表中。必须注意的是,表中所有待排序的关键字互不相同,计数排序算法针对表中的每个记录,扫描待排序的表一趟,统计表中有多少个记录的关键字比该记录的关键字小。假设针对某一个记录,统计出的计数值为 c,那么,这个记录在新的有序表中的合适的存放位置即为 c。 设计实现计数排序的算法。对于有 n个记录的表,关
17、键字的比较次数是多少?与简单选择排序相比较,这种方法是否更好?为什么? (分数:3.00)_40.某个待排序的序列是一个可变长度的字符串序列,这些字符串一个接一个地存储于唯一的字符数组中。请改写快速排序算法,对这个字符串序列进行排序。 (分数:3.00)_41.设有一个数组中存放了一个无序的关键字序列 K 1 ,K 2 ,K n 。现要求将 K放在将元素排序后的正确位置上,试编写实现该功能的算法,要求比较关键字的次数不超过 n。 (分数:3.00)_42.已知关键字序列(K 1 ,K 2 ,K 3 ,K n-1 )是大根堆。试写出一算法将(K 1 ,K 2 ,K 3 ,K n-1 ,K n )
18、调整为大根堆,并利用调整算法写一个建大根堆的算法。 (分数:3.00)_43.最小最大堆(min max Heap)是一种特定的堆,其最小层和最大层交替出现,根总是处于最小层。最小最大堆中的任一结点的关键字值总是在以它为根的子树中的所有元素中最小(或最大)。如图所示为一最小最大堆。 (分数:3.00)_44.输入 N个只含一位数字的整数,试用基数排序的方法,对这 N个数排序。 (分数:3.00)_45.试构造对 5个元素进行排序,最多只用 7次比较的算法。 (分数:3.00)_46.设有 15000个无序的元素,希望用最快的速度挑选出其中前 10个最大的元素。 在快速排序、堆排序、归并排序、基
19、数排序和希尔排序中,宜采用哪种方法并说明理由? (分数:3.00)_47.对一个具有 7个记录的文件进行快速排序,请问: (1)在最好情况下需进行多少次比较?说明理由,并给出相应实例。 (2)在最坏情况下需进行多少次比较?为什么?请给出相应实例。 (分数:3.00)_48.判断下列序列是否为堆,若不是堆,则把它们调整为堆。 (1)(100,85,95,75,80,60,82,40,20,10,65) (2)(100,95,85,82,80,75,65,60,40,20,10) (3)(100,85,40,75,80,60,65,95,82,10,20) (4)(10,20,40,60,65,7
20、5,80,82,85,95,100 (分数:3.00)_49.将十进制的关键字用二进制数表示,对基数排序所需的时间和附设空间分别有什么影响?各是多少? (分数:3.00)_50.写出快速排序的非递归算法。 (分数:3.00)_51.试设计一算法,使得在尽可能少的时间内重排数组,将所有取负值的关键字放在所有取非负值的关键字之前,并分析算法的时间复杂度。 (分数:3.00)_52.写一个 HeapInsert(R,key)算法,将关键字插入到堆 R中,并保证插入后 R仍是堆。请分析算法的时间复杂度。 将 key先插入 R中已有元素的尾部(即原堆的长度加 1的位置,插入后堆的长度加 1),然后自下往
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 考研 试卷 计算机 学科专业 基础 综合 数据结构 排序 答案 解析 DOC
