[考研类试卷]计算机专业基础综合(数据结构)模拟试卷7及答案与解析.doc
《[考研类试卷]计算机专业基础综合(数据结构)模拟试卷7及答案与解析.doc》由会员分享,可在线阅读,更多相关《[考研类试卷]计算机专业基础综合(数据结构)模拟试卷7及答案与解析.doc(32页珍藏版)》请在麦多课文档分享上搜索。
1、计算机专业基础综合(数据结构)模拟试卷 7 及答案与解析一、单项选择题1-40 小题,每小题 2 分,共 80 分。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。1 下面给出的 4 种排序方法中,( )排序法是不稳定性排序法。(A)插入(B)冒泡(C)二路归并(D)堆2 下列内部排序算法中,其比较次数(或交换次数)与序列初态无关的算法是( )。(A)快速排序(B)直接插入排序(C)二路归并排序(D)冒泡排序3 下列内部排序算法中,在初始序列已基本有序(除去 n 个元素中的某 k 个元素后即呈有序,kn)的情况下,排序效率最高的算法是( )。(A)冒泡排序(B)堆排序(C)直接插入排
2、序(D)二路归并排序4 下列排序算法中,( ) 每一趟都能选出一个元素放在最终位置上,并且是不稳定的。(A)冒泡排序(B)希尔排序(C)简单选择排序(D)直接插入排序5 下列排序方法中,时间复杂性不受数据初始状态影响,恒为 O(nlog2n)的是( )。(A)堆排序(B)冒泡排序(C)直接选择排序(D)快速排序6 下列排序算法中,某一趟结束后未必能选出一个元素放在其最终位置上的是( )。(A)选择排序(B)冒泡排序(C)归并排序(D)堆排序7 下列排序算法中,在每一趟都能选出一个元素放到其最终位置上,并且其时间性能受数据初始特性影响的是( )。(A)直接插入排序(B)归并排序(C)直接选择排序
3、(D)堆排序7 对初始状态为递增序列的表按递增顺序排序,最省时间的是( (1) )算法,最费时间的是( (2) )算法。8 (1)(A)堆排序(B)快速排序(C)插入排序(D)归并排序9 (2)(A)堆排序(B)快速排序(C)插入排序(D)归并排序10 如果只想得到 1 000 个元素组成的序列中第 5 个最小元素之前的部分排序的序列,用( ) 方法最快。(A)冒泡排序(B)快速排序(C)简单选择排序(D)堆排序11 数据表 A 中有 10 000 个元素,如果仅要求求出其中最大的 10 个元素,则采用( )方法最节省时间。(A)堆排序(B)希尔排序(C)快速排序(D)直接选择排序12 若对序
4、列(tang,deng ,an,wang,shi,bai,fang,liu)采用简单选择排序法按字典顺序进行排序,下面给出的四个序列中,第三趟的结果是( )。(A)an,bai,deng,wang,tang,fang ,shi,liu(B) an,bai ,deng ,wang,shi,tang,fang,liu(C) an,bai ,deng ,wang,fang,shi,tang,liu(D)an,bai,deng,wang,shi,liu,tang,fang13 从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为( )排序法。
5、(A)插入(B)选择(C)希尔(D)二路归并14 若用冒泡排序方法对序列10,14,26,29,41,52 从大到小排序,需进行( )次比较。(A)3(B) 10(C) 15(D)2515 下列( ) 是一个堆。(A)19,75,34,26,97,56(B) 97,26,34,75,19,56(C) 19,56,26,97,34,75(D)19,34,26,97,56,7516 若一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第 1 个记录为基准得到的一次划分结果为( )。(A)38,40,46,56,79,84(B) 40,38,46,79,56,84(C
6、) 40,38,46,56,79,84(D)40,38,46,84,56,7917 采用简单选择排序,比较次数与移动次数分别为( )。(A)O(n), O(log2n)(B) O(log2n),O(n 2)(C) O(n2),O(n)(D)O(nlog 2n),O(n)18 就排序算法所用的辅助空间而言,堆排序、快速排序、归并排序的关系是( )。(A)堆排序快速排序归并排序(B)堆排序归并排序快速排序(C)堆排序归并排序快速排序(D)堆排序快速排序归并排序19 一组记录的关键码为(25,48,16,35,79,82,23,40,36,72),其中,含有 5 个长度为 2 的有序表,按归并排序的
7、方法对该序列进行一趟归并后的结果为( )。(A)16,25,35,48,23,40,79,82,36,72(B) 16,25,35,48,79,82,23,36,40,72(C) 16,25,48,35,79,82,23,36,40,72(D)16,25,35,48,79,23,36,40,72,8220 已知 10 个数据元素为(54,28,16,34,73,62,95,60,26,43),对该序列按从小到大排序,经过一趟冒泡排序后的序列为( )。(A)16,28,34,54,73,62,60,26,43,95(B) 28,16,34,54,62,73,60,26,43,95(C) 28,1
8、6,34,54,62,60,73,26,43,95(D)16,28,34,54,62,60,73,26,43,9521 用某种排序方法对线性表(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其所采用的排序方法是( )。(A)直接选择排序(B)希尔排序(C)归并排序(D)快速排序22 在对一组记录(50,40,95
9、,20,15,70,60,45,80)进行直接插入排序时,当把第 7 个记录 60 插入到有序表时,为寻找插入位置需比较( )次。(A)1(B) 2(C) 3(D)423 将两个各有 N 个元素的有序表归并成一个有序表,其最少的比较次数是 ( )。(A)N(B) 2N 一 1(C) 2N(D)N 一 124 已知待排序的 n 个元素可分为 nk 个组,每个组包含 k 个元素,且任一组内的各元素均分别大于前一组内的所有元素和小于后一组内的所有元素,若采用基于比较的排序,其时间下界应为( )。(A)O(nlog 2n)(B) O(nlog2n)(C) O(klog2n)(D)O(klog 2k)2
10、5 已知关键序列 5,8,12,19,28,20,15,22 是小根堆(最小堆),插入关键字3,调整后得到的小根堆是( )。(A)3,5,12,8,28,20,15,22,19(B) 3,5,12,19,20,15,22,8,28(C) 3,8,12,5,20,15,22,28,19(D)3,12,5,8,28,20,15,22,1926 归并排序中,归并的趟数是( )。(A)O(n)(B) O(log2n)(C) O(nlog2n)(D)O(n 2)27 有一组数据(15,9,7,8,20,一 1,7,4),用堆排序的筛选方法建立的初始堆为( )。(A)一 1,4,8,9,20,7,15,7
11、(B)一 1,7,15,7,4,8,20,9(C)一 1,4,7,8,20,15,7,9(D)A、B、C 均不对28 基于比较方法的 n 个数据的内部排序,最坏情况下的时间复杂度能达到的最好下界是( ) 。(A)O(nlog 2n)(B) O(log2n)(C) O(n)(D)O(n 2)29 以下排序方法中,稳定的排序方法是( )。(A)直接插入排序(B)直接选择排序(C)堆排序(D)基数排序30 在对一组记录(50,40,95,20,15,70,60,45,80)进行希尔排序时,假定d0=9, d1=4, d2=2,d 3=1,则第二趟排序结束后前 4 条记录为( )。(A)(50 ,20
12、,15,70)(B) (60,45,80,50)(C) (15,20,50,40)(D)(15 ,20,80,70)31 在归并排序中,若待排序记录的个数为 20,则共需要进行( )趟归并,在第三趟归并中,是把长度为( )的有序表归并为长度为( )的有序表。(A)5,4,8(B) 6,3,9(C) 7,4,3(D)3,8,2二、综合应用题41-47 小题,共 70 分。32 在执行某种排序算法的过程中出现了排序码朝着最终排序序列相反的方向移动,从而认为该排序算法是不稳定的,这种说法对吗?为什么?33 设有 5 个互不相同的元素 a,b,c ,d,e,能否通过 7 次比较就将其排好序?如果能,请
13、列出其比较过程;如果不能,则说明原因。34 对一个由 n 个关键字不同的记录构成的序列,能否用比 2n 一 3 少的次数选出该序列中关键字取最大值和关键字取最小值的记录?请说明如何实现? 在最坏的情况下至少要进行多少次比较?35 利用比较的方法进行排序,在最坏的情况下能达到的最好时间复杂性是什么?请给出详细证明。36 已知下列各种初始状态(长度为 n)元素,试问当利用直接插入法进行排序时,至少需要进行多少次比较(要求排序后的文件按关键字从大到小顺序排列)? (1)关键字自小到大有序(key 1key 2key n); (2)关键字自大到小逆序(key1key 2 key n); (3)奇数关键
14、字顺序有序,偶数关键字顺序有序(key1key 3 ,key 2key 4); (4) 前半部分元素按关键字顺序有序,后半部分元素按关键字顺序逆序(key 1key 2key m, keym+1key m+2key n,m 为中间位置)。37 对于 n 个元素组成的线性表进行快速排序时,所需进行的比较次数与这 n 个元素的初始排序有关。问:(1)当 n=7 时,在最好情况下需进行多少次比较?请说明理由。(2)当 n=7 时,给出一个最好情况的初始排序的实例。(3)当 n=7 时,在最坏情况下需进行多少次比较?请说明理由。(4)当 n=7 时,给出一个最坏情况的初始排序的实例。38 关于堆的一些
15、问题:(1)堆的存储表示是顺序的,还是链接的?(2)设有一个最小堆,即堆中任意结点的关键字均大于它的左孩子和右孩子的关键字。其具有最大值的元素可能在什么地方?(3)对 n 个元素进行初始建堆的过程中,最多做多少次数据比较(不用大 O 表示法)?39 若有 N 个元素已构成一个小根堆,那么如果增加一个元素为 Kn+1,请用文字简要说明如何在 log2n 的时间内将其重新调整为一个堆。40 冒泡排序方法是把大的元素向上移(气泡的上浮),也可以把小的元素向下移(气泡的下沉)。请给出上浮和下沉过程交替的冒泡排序算法。41 有一种简单的排序算法,叫做计数排序(Count sorting)。这种排序算法对
16、一个待排序的表(用数组表示) 进行排序,并将排序结果存放到另一个新的表中。必须注意的是,表中所有待排序的关键字互不相同,计数排序算法针对表中的每个记录,扫描待排序的表一趟,统计表中有多少个记录的关键字比该记录的关键字小。假设针对某一个记录,统计出的计数值为 c,那么,这个记录在新的有序表中的合适的存放位置即为 c。设计实现计数排序的算法。对于有 n 个记录的表,关键字的比较次数是多少?与简单选择排序相比较,这种方法是否更好?为什么?42 某个待排序的序列是一个可变长度的字符串序列,这些字符串一个接一个地存储于唯一的字符数组中。请改写快速排序算法,对这个字符串序列进行排序。43 设有一个数组中存
17、放了一个无序的关键字序列 K1,K 2,K n。现要求将 Kn,放在将元素排序后的正确位置上,试编写实现该功能的算法,要求比较关键字的次数不超过 n。44 已知关键字序列(K 1,K 2,K 3,K n-1)是大根堆。试写出一算法将(K1,K 2,K 3,K n-1,K n)调整为大根堆,并利用调整算法写一个建大根堆的算法。45 最小最大堆(min max Heap)是一种特定的堆,其最小层和最大层交替出现,根总是处于最小层。最小最大堆中的任一结点的关键字值总是在以它为根的子树中的所有元素中最小(或最大) 。如图所示为一最小最大堆。(1)画出在图中插入关键字为 5 的结点后的最小最大堆。 (2
18、)画出在图中插入关键字为 80 的结点后的最小最大堆。 (3)编写一算法实现最小最大堆的插入功能。假定最小最大堆存放在数组中,关键字为整数。46 输入 N 个只含一位数字的整数,试用基数排序的方法,对这 N 个数排序。47 设有 15 000 个无序的元素,希望用最快的速度挑选出其中前 10 个最大的元素。在快速排序、堆排序、归并排序、基数排序和希尔排序中,宜采用哪种方法并说明理由?48 对一个具有 7 个记录的文件进行快速排序,请问:(1)在最好情况下需进行多少次比较? 说明理由,并给出相应实例。(2)在最坏情况下需进行多少次比较? 为什么?请给出相应实例。49 判断下列序列是否为堆,若不是
19、堆,则把它们调整为堆。(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,75,80,82,85,95,100)50 将十进制的关键字用二进制数表示,对基数排序所需的时间和附设空间分别有什么影响?各是多少 ?51 写出快速排序的非递归算法。52 试设计一算法,使得在尽可能少的时间内重排数组,将所有取负值的关键字放在所有取非负值的关键字之前,并分析算法的时间复杂度。53 写一个 Hea
20、pInsert(R, key)算法,将关键字插入到堆 R 中,并保证插入后 R 仍是堆。请分析算法的时间复杂度。提示:将 key 先插入 R 中已有元素的尾部(即原堆的长度加 1 的位置,插入后堆的长度加 1),然后自下往上调整,使插入的关键字满足堆性质。54 写一个建立堆的算法:从空堆开始,依次读入元素,调用上题中堆插入算法将其插入堆中。计算机专业基础综合(数据结构)模拟试卷 7 答案与解析一、单项选择题1-40 小题,每小题 2 分,共 80 分。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。1 【正确答案】 D【试题解析】 此题考查的知识点是排序算法的稳定性问题。如果待排序的
21、文件中,存在多个关键字相同的记录,经过排序后这些具有相同关键字的记录之间的相对次序保持不变,则称这种排序是稳定的排序;反之,若具有相同关键字的记录之间的相对次序发生变化,则称这种排序是不稳定的排序。是否稳定与算法有关,相邻数据比较的算法是稳定的,不相邻数据比较会出现不稳定。选项 A、B 、C 都是相邻元素比较,是稳定的。所以选 D。【知识模块】 数据结构2 【正确答案】 C【试题解析】 此题考查的知识点是各类排序算法的思想。冒泡排序方法就是自底向上检查这个序列,若两个相邻的元素的顺序不对,则交换。直到所有元素处理完为止。与序列初态有关,D 错。直接插入排序思想是假设待排序的记录存放在数组 Rn
22、+1中,排序过程中的某一时刻,R 被分成两个子区间R1,Ri 一 1和Ri,Rn,其中,前一个子区间是已排好序的有序区;后一个子区间是当前未排序的无序区。直接插入排序的基本操作是将当前无序区的第 i 个记录 Ri插入到有序区中的适当位置,使得 R1到 Ri变为新的有序区。首先比较 Ri和 Ri 一 1,如果 Ri 一 1Ri,则R1 i已排好序,第 i 遍处理就结束了:否则交换 Ri与 Ri 一 1的位置,继续比较 Ri1和 Ri 一 2,直到找到某一个位置 j(1ji 一 1)使得 RjRj+1时为止。与序列初态有关,B 错。快速排序是通过基准元素 v 把表(文件,数据集合)划分成左、右两部
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 考研 试卷 计算机专业 基础 综合 数据结构 模拟 答案 解析 DOC
