[计算机类试卷]数据结构练习试卷4及答案与解析.doc
《[计算机类试卷]数据结构练习试卷4及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]数据结构练习试卷4及答案与解析.doc(19页珍藏版)》请在麦多课文档分享上搜索。
1、数据结构练习试卷 4及答案与解析 1 在长度为 64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为_。 ( A) 63 ( B) 64 ( C) 6 ( D) 7 2 对长度为 n的线性表进行顺序查找,在最坏情况下,所需要的比较次数为_。 ( A) 1og2n ( B) n/2 ( C) n2 ( D) n+1 3 设有 100个结点,用二分法查找时,最大比较次数是 _。 ( A) 25 ( B) 50 ( C) 10 ( D) 7 4 如果要求一个线性表既能较快地查找,又能适应动态变化 的要求,则可采用_的方法。 ( A)分块 ( B)顺序 ( C)二分法 ( D)基于属性 5 在最
2、坏情况下,下列排序方法中时间复杂度最小的是 _。 ( A)冒泡排序 ( B)快速排序 ( C)插入排序 ( D)堆排序 6 对于长度为 n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是 _。 ( A)冒泡排序为 n/2 ( B)冒泡排序为 n ( C)快速排序为 n ( D)快速排序为 n(n-1)/2 7 n个元素进行冒泡排序的过程中,最好情况下的时间复杂度为 _。 ( A) O(1) ( B) O(1og2n) ( C) O(n2) ( D) O(n) 8 若原始数据序列 (23,4,45,67,12,8,19,7)采用直接插入排序法 (顺序地将每个元素插入到它之前的适当位
3、置 )排序,则进行完第 4趟后的排序结果是 _。 ( A) 4,8,45,23,67,12,19,7 ( B) 4,7,8,12,23,45,67,19 ( C) 4,12,8,19,7,23,45,67 ( D) 4,12,23,45,67,8,19,7 9 下面的排序方法中,关键字比较次数与 记录的初始排列无关的是 _。 ( A)希尔排序 ( B)冒泡排序 ( C)直接插入排序 ( D)直接选择排序 10 在排序算法中每一项都与其他诸项进行比较,计算出小于该项的项的个数,以确定该项的位置叫 _。 ( A)插入排序 ( B)交换排序 ( C)选择排序 ( D)枚举排序 11 在下列算法中,
4、_算法可能出现下列情况:在最后一趟开始之前,所有的元素都不在其最终的位置上。 ( A)堆排序 ( B)冒泡排序 ( C)插入排序 ( D)快速排序 12 在文件 “局部有序 ”或 文件长度较小的情况下,最佳内部排序方法是 _。 ( A)直接插入排序 ( B)冒泡排序 ( C)简单选择排序 ( D)归并排序 13 从未排序的序列中依次取出一个元素与已排序序列中的元素进行比较,然后将其放在已排序序列的合适位置上,该排序方法称为 _。 ( A)插入排序 ( B)选择排序 ( C)希尔排序 ( D)归并排序 14 如果待排序序列中两个元素具有相同的值,在排序前后它们的相互位置发生颠倒,则称该排序算法是
5、不稳定的。 _是稳定的排序方法,因为这种方法在比较相邻元素时 ,值相同的元素并不进行交换。 ( A)冒泡排序 ( B)希尔排序 ( C)快速排序 ( D)简单选择排序 15 对长度为 n的线性表排序,在最坏的情况下,比较次数不是 n(n-1)/2的排序方法是 _。 ( A)快速排序 ( B)冒泡排序 ( C)直接插入排序 ( D)堆排序 16 冒泡排序在最坏情况下的比较次数是 _。 ( A) n(n+1)/2 ( B) n1og2n ( C) n(n-1)/2 ( D) n/2 17 在第一趟排序之后,一定能把数据表中最大或最小元素放在其最终位置上的排序 算法是 _。 ( A)冒泡排序 ( B
6、)基数排序 ( C)快速排序 ( D)归并排序 18 为了用一个数代表一批数,人们常用这批数据的算术平均值 (简称平均值 )或中位数来代表。中位数就是位于这批数中间的数 (大于它的数与小于它的数一样多 )。对于奇数个数而言,排序后很容易确定中间那个数;对于偶数个数而言,排序后中间会有两个数,再取这两个数的算术平均,就是中位数。以下关于平均值与中位数的叙述中, _是不正确的。 ( A)中位数比平均值稳健,不易受极端值影响 ( B)每个数据加倍后,平均值也加倍 ;每个数据增加 1后,平均值也增加 1 ( C)三组各有 n个数据有三个中位数,它们的中位数就是这三组数据全体的中位数 ( D)三组各有
7、n个数据有三个平均值,它们的平均值就是这三组数据全体的平均值 19 已知递归函数 f(n)的功能是计算 1+2+n ,且 n1,应采用的代码段是_。 ( A) if n 1 then return 1 else return n+f(n-1) ( B) if n 1 then return 1 else return n+f(n+1) ( C) if n 1 then return 0 else return n+f(n-1) ( D) if n 1 then return 0 else return n+f(n+1) 20 设最优的分配方案为完成这三项工作所需的总天数最少,则在最优分配方案中
8、, _。 ( A)甲执行 P ( B)甲执行 Q ( C)乙执行 P ( D)乙执行 R 21 在排序算法中,两两比较待排序的记录,当发现不满足顺序要求时,变更它们的相对位置,这就是 (1)排序。每次从未排序的记录中挑出最小 (或最大 )关键码值的记录,加入到已排序记录的末尾,这是 (2)排序。 ( A)插入 ( B)枚举 ( C)交换 ( D)归并 ( E)基数 ( A)插入 ( B)枚举 ( C)交换 ( D)归并 ( E)选择 23 设有 n个结点进行排序,不稳定排序是 (1);快速排序的最坏时间是 (2)。 ( A)直接插入排序 ( B)冒泡排序 ( C)希尔排序 ( D)归并排序 (
9、 A) O(n1og2n) ( B) O(n2) ( C) O(n2/2) ( D) O(n) 25 设有 n个结点进行排序,不稳定排序是 (1);快速排序的最大比较次数是 (2)。 ( A)直接插入排序 ( B) 冒泡排序 ( C) Shell排序 ( D)归并排序 ( A) n1og2n ( B) n2 ( C) n2/2 ( D) n 27 堆排序是一种基于 _的排序方法, _不是堆。 ( A)计数 ( B)插入 ( C)选择 ( D)归并 ( A) 15,28,25,56,68,63,30 ( B) 15,28,25,30,68,63,56 ( C) 68,28,63,25,15,56
10、,30 ( D) 68,56,39,63,28,25,15 29 正规式 (1|3|5)(202)(c|de)表示的正规集合 中元素数目为 (1), (2)是该正规集合中的元素。 ( A) 6 ( B) 7 ( C) 8 ( D)无穷 ( A) 135202cde ( B) 1202c ( C) 302cde ( D) 52c 31 阅读下列说明、流程图和算法进行填空。 下面的流程图用 N-S盒图形式描述了数组 A中的元素被划分的过程。其划分方法是:以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元素向高下标端移动。当划分结束时,基准数定位于 Ai,并且数组中下
11、标小于 i的元素的值均小于基准数,下标大于 i的元素的值均大 于基准数。设数组 A的下界为 low,上界为 high,数组中的元素互不相同。例如,对数组 (4,2,8,3,6),以 4为基准数的划分过程如图8-34所示。 算法说明:将上述划分的思想进一步用于被划分出的数组的两部分,就可以对整个数组实现递增排序。设函数 int p(int A,int low,int high)实现了上述流程图的划分过程并返回基准数在数组 A中的下标。递归函数 void sort(int A,int L,int H)的功能是实现数组 A中元素的递增排序。 算法如下。 void sort(int A, int L,
12、 int H) if (L H) k=p(A,L,H); /p()返回基准数在数组 A中的下标 sort(4); /小于基准数的元素排序 sort(5); /大于基准数的元素排序 数据结构练习试卷 4答案与解析 1 【正确答案】 B 【试题解析】 在长度为 64的有序线性表中,其中的 64个数据元素是按照从大到小或从小到大的顺序排列有序的。在这样的线性表中进行顺序查找,最坏的情况就是查找的数据元素不在线性表中或位于线性表的最后。按照线性表的顺序查找算法,首 先用被查找的数据和线性表的第一个数据元素进行比较,若相等,则查找成功,否则,继续进行比较,即和线性表的第二个数据元素进行比较。同样,若相等
13、,则查找成功,否则,继续进行比较。依次类推,直到在线性表中查找到该数据或查找到线性表的最后一个元素,算法才结束。因此,在长度为 64的有序线性表中进行顺序查找,最坏的情况下需要比较 64次。因此,本题的正确答案为B。 【知识模块】 数据结构 2 【正确答案】 C 【试题解析】 在长度为 n的线性表中进行顺序查找,最坏情况下需要比较 n次。选项 C正确。 【知识 模块】 数据结构 3 【正确答案】 D 【试题解析】 在最坏情况下,二分法查找的比较次数均为 1og2(n+1)L。 n为 100时,最大比较次数为 7。所以,本题应该选择 D。 【知识模块】 数据结构 4 【正确答案】 A 【试题解析
14、】 二分法是快速查找方法,但要求线性表是有序的。如果把线性表按趋势分块,也就是说,块之间有序,块内不一定有序。这样就可以既能较快地查找,又能适应动态变化的要求。本题正确答案为选项 A。 【知识模块】 数据结构 5 【正确答案】 D 【试题解析】 在最 坏情况下:冒泡排序、快速排序和插入排序需要的比较次数均为 n(n-1)/2,堆排序需要比较的次数为 O(n1og2n)。可知,在最坏情况下,堆排序的时间复杂度最小,本题的正确答案为选项 D。 【知识模块】 数据结构 6 【正确答案】 D 【试题解析】 假设线性表的长度为 n,在最坏情况下,冒泡排序和快速排序需要的比较次数为 n(n-1)/2。由此
15、可见,选项 D正确。 【知识模块】 数据结构 7 【正确答案】 D 【试题解析】 最好情况下至少需要一趟排序,即比较 n-1次。选项 D为本题正确答案。 【知识模块】 数据结构 8 【正确答案】 D 【试题解析】 直接插入排序的思想是,从序列的第 2个元素开始遍历,每次将遍历的元素插入到其前面序列的适当位置,使该元素及其之前的元素有序。所以, 4趟排序后,原序列的前 5个元素已排序。故本题应该选择 D。 【知识模块】 数据结构 9 【正确答案】 D 【试题解析】 如果初始排列基本有序,则对希尔排序来说,前几趟的插入工作大为减少。冒泡排序和直接插入排序都与初始排序序列有关,只有直接选择排序与初始
16、序列无关。本题正确答案为选项 D。 【知识模块】 数据结构 10 【正确答案】 D 【试题解析】 在排序算法中每一项都与其他诸项进行比较,计算出小于该项的项的个数,以确定该项的位置,这种排序方式是枚举排序,也是选择排序的一种。本题正确答案为选项 D。 【知识模块】 数据结构 11 【正确答案】 C 【试题解析】 在插入排序中,如果待排序列中的最后一个元素其关键字值为最小,则在最后一趟开始之前,前 n-1个排好序的元素都不在其最终位置上,与排好序后的位置相差一个位置。因此,本题正确答案为选项 C。 【知识模块】 数据结构 12 【正确答案】 A 【试题解析】 当待排序列基本有序时: 直接插入排序
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 数据结构 练习 答案 解析 DOC
