NOIP《 数据结构》练习题及答案
数据结构习题(含答案)

数据结构习题(含答案)数据结构习题(含答案)1. 题目描述:请实现一个栈,要求支持以下操作:push(x)将元素x 入栈;pop()弹出栈顶元素;top()返回栈顶元素;empty()判断栈是否为空。
解答:我们可以使用数组来实现栈的功能。
首先定义一个数组stack来存储栈中的元素,同时定义一个整型变量top来表示栈顶的索引位置。
初始时,将top设置为-1,表示栈中没有元素。
1.1 push(x)操作:当要将元素x入栈时,我们先将top的值加1,然后将x赋值给stack[top],即将x放入栈顶位置。
1.2 pop()操作:当调用pop()操作时,我们首先判断栈是否为空,即判断top的值是否为-1。
如果top等于-1,说明栈为空,无法进行pop()操作。
如果不为空,则将top的值减1,同时返回stack[top],即弹出栈顶元素。
1.3 top()操作:top()操作与pop()操作类似,只需在操作完成后不弹出栈顶元素,而是直接返回stack[top]即可。
1.4 empty()操作:empty()操作用来判断栈是否为空,只需判断top的值是否为-1即可。
如果top等于-1,则返回true,表示栈为空;否则返回false,表示栈不为空。
综上所述,我们可以用数组实现一个栈,满足push、pop、top和empty等操作。
2. 题目描述:请实现一个队列,要求支持以下操作:push(x)将元素x入队;pop()将队首元素出队;peek()返回队首元素;empty()判断队列是否为空。
解答:我们可以使用两个栈来实现一个队列的功能。
首先定义两个栈stack1和stack2,其中stack1用来存储新加入队列的元素,stack2用来存储队列中已经处理过的元素。
定义两个整型变量top1和top2,分别表示stack1和stack2的栈顶索引位置。
初始时,top1和top2均设置为-1,表示两个栈均为空。
2.1 push(x)操作:当要将元素x入队时,我们直接将x加入到stack1中,同时将top1的值加1。
数据结构试题(含答案)讲解

数据结构试题一、单选题1、在数据结构的讨论中把数据结构从逻辑上分为(C )A 内部结构与外部结构B 静态结构与动态结构C 线性结构与非线性结构D 紧凑结构与非紧凑结构。
2、采用线性链表表示一个向量时,要求占用的存储空间地址(D )A 必须是连续的B 部分地址必须是连续的C 一定是不连续的D 可连续可不连续3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为( D )。
A nB n/2C (n-1)/2D (n+1)/24、在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行( D )。
A s→link = p→link;p→link = s;B p→link = s; s→link = q;C p→link = s→link;s→link = p;D q→link = s;s→link = p;5、如果想在4092个数据中只需要选择其中最小的5个,采用( C )方法最好。
A 起泡排序B 堆排序C 锦标赛排序D 快速排序6、设有两个串t和p,求p在t中首次出现的位置的运算叫做( B )。
A 求子串B 模式匹配C 串替换D 串连接7、在数组A中,每一个数组元素A[i][j]占用3个存储字,行下标i从1到8,列下标j从1到10。
所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储字数是( C )。
A 80B 100C 240D 2708、将一个递归算法改为对应的非递归算法时,通常需要使用( A )。
A 栈B 队列C 循环队列D 优先队列9、一个队列的进队列顺序是1, 2, 3, 4,则出队列顺序为( C )。
10、在循环队列中用数组A[0..m-1] 存放队列元素,其队头和队尾指针分别为front和rear,则当前队列中的元素个数是( D )。
A ( front - rear + 1) % mB ( rear - front + 1) % mC ( front - rear + m) % mD ( rear - front + m) % m11、一个数组元素a[i]与( A )的表示等价。
数据结构的试题及答案

数据结构的试题及答案一、选择题1. 在数据结构中,线性表的顺序存储方式被称为:A. 栈B. 队列C. 链表D. 数组答案:D2. 以下哪种数据结构是动态数据结构?A. 数组B. 链表C. 栈D. 队列答案:B3. 树的度是树内所有节点的度的最大值,树的深度是树的最长路径上的节点数。
以下哪个选项正确描述了树的度和深度?A. 度是节点的最大值,深度是路径上节点数B. 度是路径上节点数,深度是节点的最大值C. 度是节点的最大值,深度是节点的最大值D. 度是路径上节点数,深度是路径上节点数答案:A二、简答题1. 请简述链表和数组的区别。
答案:链表和数组是两种不同的数据存储方式。
数组是连续的内存空间,可以通过索引快速访问元素,但插入和删除操作可能需要移动大量元素。
链表由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针,链表的插入和删除操作不需要移动其他元素,但访问特定元素需要从头开始遍历。
2. 什么是二叉搜索树?它有哪些特点?答案:二叉搜索树(BST)是一种特殊的二叉树,其中每个节点的值都大于或等于其左子树中的任何节点的值,并且小于或等于其右子树中的任何节点的值。
BST的主要特点是它支持快速的查找、插入和删除操作,时间复杂度为O(log n)。
三、计算题1. 给定一个链表,编写一个算法来删除链表中的重复元素。
答案:以下是删除链表中重复元素的算法步骤:- 遍历链表,使用一个哈希表来记录已经遇到的元素。
- 当遍历到一个新元素时,检查它是否已经在哈希表中。
- 如果已经存在,删除当前节点,并继续遍历。
- 如果不存在,将元素添加到哈希表中,并继续遍历。
- 完成遍历后,链表中的重复元素将被删除。
2. 假设有一个二叉搜索树,编写一个算法来找到树中第k小的元素。
答案:以下是找到二叉搜索树中第k小元素的算法步骤:- 从根节点开始,使用中序遍历(左-根-右)。
- 遍历过程中,记录访问的节点数量。
- 当访问到第k个节点时,该节点即为所求的第k小的元素。
(完整版)数据结构练习题及参考答案

数据结构练习题第一部分绪论一、单选题1. 一个数组元素a[i]与________的表示等价。
A、 *(a+i)B、 a+iC、 *a+iD、 &a+i2. 对于两个函数,若函数名相同,但只是____________不同则不是重载函数。
A、参数类型B、参数个数C、函数类型3. 若需要利用形参直接访问实参,则应把形参变量说明为________参数A、指针B、引用C、值4. 下面程序段的时间复杂度为____________。
for(int i=0; i<m; i++)for(int j=0; j<n; j++)a[i][j]=i*j;A、 O(m2)B、 O(n2)C、 O(m*n)D、 O(m+n)5. 执行下面程序段时,执行S语句的次数为____________。
for(int i=1; i<=n; i++)for(int j=1; j<=i; j++)S;A、 n2B、 n2/2C、 n(n+1)D、 n(n+1)/26. 下面算法的时间复杂度为____________。
int f( unsigned int n ) {if ( n==0 || n==1 ) return 1; else return n*f(n-1);}A、 O(1)B、 O(n)C、 O(n2)D、 O(n!)二、填空题1. 数据的逻辑结构被分为__________、_________、__________和__________四种。
2. 数据的存储结构被分为__________、_________、__________和__________四种。
3. 在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着________、________和________的联系。
4. 一种抽象数据类型包括__________和__________两个部分。
5. 当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。
数据结构练习题及参考答案

《数据结构》练习题一、解答题(共50分)1、(8分)假设用于通讯的电文字符集及其出现的频率如下表所示。
请为这8个字符设计哈夫曼编码,并画出其哈夫曼树,计算WPL 。
2. (8分)若一棵二叉树中序遍历和后序遍历序列分别为:DBEHGAFIC 和DHGEBIFCA 。
试画出这棵二叉树,并写出其先序遍历和层序遍历序列。
3.(16分)以下无向网络以邻接表为存储结构(假设邻接表的顶点表按字母a 、b 、c 、d 、e 、f 、g 、h 的顺序依次存储,邻接表的边表结点按顶点的下标由小到大链接)。
请画出其邻接表,并写出从顶点f 出发,分别进行深度和广度优先遍历的序列,写出用Prime 方法从顶点c开始产生最小生成树的边的序列。
4.(8分)已知键值序列为(44,39,67,25, 52,59,43,84,54,58,15,26,12,73,92,69),取填充因子α=0.8,采用线性探查法处理冲突,试构造散列表。
⒌(5分)已知一组记录为(67,88,15,12,60,37,7,31,45,81),用希尔排序方法进行排序,d1=5,d2=3,d3=1,则第二趟的排序结果是( )。
⒍(5分)已知一组记录为(67,88,15,12,60,37,7,31,45,81) ,用堆(大根堆)排序方法进行排序,第一趟的排序结果是( )。
二、完善程序(共20分,每空2分)1.假设一组递减有序的原始数据存储在数组r 中,存放元素的下标下限为low,下标上字符 出现频率 a 0.05 b 0.03 c 0.24 d 0.16 e 0.08 f 0.24 g 0.18 h0.02限为high,以下是在数组中查找数值为k的折半查找算法。
请填空完善程序。
int BinSearch(int r[ ], int low,int high,int k){ int l,h,m;l= low; h= high;while ( ⑴){m= ⑵;if (k < r[m]) ⑶;else if (k > r[m]) ⑷;else return m;}return 0;}2. 以下程序功能是将数组r中,从下标first到end之间的元素进行快速排序的分区。
数据结构试题及答案(十套)

一、单选题(每题 2 分,共20分)1.对一个算法的评价,不包括如下(B )方面的内容。
A.健壮性和可读性B.并行性C.正确性D.时空复杂度2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( )。
A. p->next=HL->next; HL->next=p;B. p->next=HL; HL=p;C. p->next=HL; p=HL;D. HL=p; p->next=HL;3.对线性表,在下列哪种情况下应当采用链表表示?( )A.经常需要随机地存取元素B.经常需要进行插入和删除操作C.表中元素需要占据一片连续的存储空间D.表中元素的个数不变4.一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( C )A. 2 3 1B. 3 2 1C. 3 1 2D. 1 2 35.AOV网是一种()。
A.有向图B.无向图C.无向无环图D.有向无环图6.采用开放定址法处理散列表的冲突时,其平均查找长度()。
A.低于链接法处理冲突 B. 高于链接法处理冲突C.与链接法处理冲突相同D.高于二分查找7.若需要利用形参直接访问实参时,应将形参变量说明为()参数。
A.值B.函数C.指针D.引用8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的()。
A.行号B.列号C.元素值D.非零元素个数9.快速排序在最坏情况下的时间复杂度为()。
A.O(log2n) B.O(nlog2n)C.0(n) D.0(n2)10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A. O(n)B. O(1)C. O(log2n)D. O(n2)二、运算题(每题 6 分,共24分)1.数据结构是指数据及其相互之间的______________。
当结点之间存在M对N (M:N)的联系时,称这种结构为_____________________。
数据结构练习题(含答案)(DOC)

3. 已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试写一算法,删除表中所有大于 x 且小于 y 的元 素(若表中存在这样的元素)同时释放被删除结点空间。
void del(LinkList L,elemtype a,elemtype b) { p= L;q=p->next;
习题答案
2.1 1. B 2. A, C 3. B 4. D 5. C 6. A 7. A 8. B
9. C 10. D 11.B 12.B 13.A 14.D 15.B 16.C
2.2 1. 线性结表
2. 前驱结点、后继结点
3. s, p 5. p->next, s
4. q->next, q 6. O (1) , O (n)
A. s->next=p->next; p->next=s; B. p->next=s->next; s->next=p;
B. q->next=s; s->next=p;
C. p->next=s; s->next=q;
12. 在一个单链表中,若 p 所指结点不是最后结点,在 p 之后插入 s 所指结点,则执行____。
6. 对于一个具有 n 个结点的单链表,在已知 p 所指结点后插入一个新结点的时间复杂度是__ __;在给定值为 x 的
结点后插入一个新结点的时间复杂度是__ __。
2.3 算法设计题:
1.设顺序表 va 中的数据元数递增有序。试写一算法,将 x 插入到顺序表的适当位置上,以保持该表的有序性。
Status Insert_SqList(SqList &va,int x) { if(va.length+1>maxsize) return ERROR; va.length++; for(i=va.length-1;va.elem[i]>x&&i>=0;i--) va.elem[i+1]=va.elem[i]; va.elem[i+1]=x; return OK;
NOIP《 数据结构》练习题及答案

习题:1.设循环队列中数组的下标范围是1–n,其头尾指针分别为f和r,则其元素个数为(D).A.r- f B.r- f +1 C.(r- f ) MOD n+1 D.(r- f + n) MOD n 2.线性表若采用链表存贮结构,要求内存中可用存贮单元地址(D).A.必须连续 B.部分地址必须连续 C.一定不连续 D.连续不连续均可3.下列叙述中,正确的是( D ).A.线性表的线性存贮结构优于链表存贮结构B.队列的操作方式是先进后出C.栈的操作方式是先进先出D.二维数组是指它的每个数据元素为一个线性表的线性表4.在顺序表(2,5,7,10,14,15,18,23,35,41,52)中,用二分法查找12,所需的关键码比较的次数为( C )A.2B.3C.4D.55.若已知一个栈的入栈顺序是1,2,3,…,n,其输出序列为P1,P2,P3,…,Pn,若P1是n,则Pi是( C )A.iB.n-1C.n-i+1D.不确定6.如果一个栈初始时为空,且当前栈中的元素从栈底到栈顶依次为a,b,c(如图所示),另有元素d已经出栈,则可能的入栈顺序是( D )。
A. a d c bB. b a c dC. a c b dD. d a b c7.( B )是一种先进先出的线性表A. 栈B. 队列C. 哈希表(散列表)D.二叉树8.如果一棵二叉树中序遍历为BAC,那么它的先序遍历不可能是( C )。
A. ABCB. CBAC. ACBD. BAC9.元素R1、R2、R3、R4、R5入栈的顺序为R1、R2、R3、R4、R5。
如果第1个出栈的是R3,那么第5个出栈的不可能是( B )。
A. R1B.R2C.R4D.R510. 设栈S的初始状态为空,元素a, b, c, d, e 依次入栈,以下出栈序列不可能出现的有(C)。
A. a, b, c, e, dB. b, c, a, e, dC. a, e, c, b, dD. d, c, e, b, a 11.一个高度为h的二叉树最小元素数目是( B )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习题:1.设循环队列中数组的下标范围是1–n,其头尾指针分别为f和r,则其元素个数为(D).A.r- f B.r- f +1 C.(r- f ) MOD n+1 D.(r- f + n) MOD n 2.线性表若采用链表存贮结构,要求内存中可用存贮单元地址(D).A.必须连续 B.部分地址必须连续 C.一定不连续 D.连续不连续均可3.下列叙述中,正确的是( D ).A.线性表的线性存贮结构优于链表存贮结构B.队列的操作方式是先进后出C.栈的操作方式是先进先出D.二维数组是指它的每个数据元素为一个线性表的线性表4.在顺序表(2,5,7,10,14,15,18,23,35,41,52)中,用二分法查找12,所需的关键码比较的次数为( C )A.2B.3C.4D.55.若已知一个栈的入栈顺序是1,2,3,…,n,其输出序列为P1,P2,P3,…,Pn,若P1是n,则Pi是( C )A.iB.n-1C.n-i+1D.不确定6.如果一个栈初始时为空,且当前栈中的元素从栈底到栈顶依次为a,b,c(如图所示),另有元素d已经出栈,则可能的入栈顺序是( D )。
A. a d c bB. b a c dC. a c b dD. d a b c7.( B )是一种先进先出的线性表A. 栈B. 队列C. 哈希表(散列表)D.二叉树8.如果一棵二叉树中序遍历为BAC,那么它的先序遍历不可能是( C )。
A. ABCB. CBAC. ACBD. BAC9.元素R1、R2、R3、R4、R5入栈的顺序为R1、R2、R3、R4、R5。
如果第1个出栈的是R3,那么第5个出栈的不可能是( B )。
A. R1B.R2C.R4D.R510. 设栈S的初始状态为空,元素a, b, c, d, e 依次入栈,以下出栈序列不可能出现的有(C)。
A. a, b, c, e, dB. b, c, a, e, dC. a, e, c, b, dD. d, c, e, b, a 11.一个高度为h的二叉树最小元素数目是( B )。
A.2h+lB.hC.2h-1D.2hE.2h-l12.已知队列(13,2,11,34,41,77,5,7,18,26,15),第一个进入队列的元素是13,则第五个出队列的元素是( B )。
A.5B.41C.77D.13E.1813.无向图G有16条边,有3个4度顶点、4个3度顶点,其余顶点的度均小于3,则G至少有个顶点。
答: 1114.由3个a,1个b和2个c构成的所有字符串中,包含子串“abc”的共有( D )个A.20B.8C.16D.12E.2415. 设栈S的初始状态为空,元素a, b, c, d, e, f, g依次入栈,以下出栈序列不可能出现的是( E )。
A. a, b, c, e, d, f, gB. b, c, a, f, e, g, dC. a, e, d, c, b, f, gD. d, c, f, e, b, a, gE. g, e, f, d, c, b, a16.设栈S的初始状态为空,元素A,B,C,D,E,f依次入栈S,出栈的序列为B,D,f,E,C,A,则栈S的容量至少应该是(C)A.6B.5C.4D.317.某个车站呈狭长形,宽度只能容下一台车,并且只有一个出入口。
已知某时刻该车站状态为空,从这一时刻开始的出入记录为:"进,出,进,进,进,出,出,进,进,进,出,出"。
假设车辆入站的顺序为1,2,3,……,则车辆出站的顺序为( C )。
A. 1, 2, 3, 4, 5B. 1, 2, 4, 5, 7C. 1, 4, 3, 7, 6D. 1, 4, 3, 7, 218.某车站呈狭长形,宽度只能容下一台车,并且只有一个出入口。
已知某时该车站站台为空,从这一时刻开始出入记录为:“进出进进出进进进出出进出”。
假设车辆入站的顺序为1,2,3……,则车辆出站的顺序为(E)A.1,2,3,4,5B.1,2,4,5,7C.1,3,5,4,6D.1,3,5,6,7E.1,3,6,5,719.地面上有标号为A.B.C的三根柱,在A柱上放有10个直径相同中间有孔的圆盘,从上到下依次编号为1,2,3……,将A柱上的部分盘子经过B柱移入C柱,也可以在B柱上暂存。
如果B 柱上的操作记录为“进、进、出、进、进、出、出、进、进、出、进、出、出”。
那么,在C柱上,从下到上的编号为( C )。
A.2 4 3 6 5 7 B.2 4 1 2 5 7 C.2 4 3 1 7 6 D.2 4 3 6 7 520.有六个元素FEDCBA 从左至右依次顺序进栈,在进栈过程中会有元素被弹出栈。
问下列哪一个不可能是合法的出栈序列? DA. EDCFABB. DECABFC. CDFEBAD. BCDAEF21.在下图,从端点(E )出发存在一条路径可以遍历图中的每条边一次,而且仅遍历一次22. 完全二叉树的结点个数为11,则它的叶结点个数为( E )。
A. 4B.3C.5D. 2E. 623. 二叉树T的宽度优先遍历序列为A B C D E F G H I,已知A是C的父结点,D 是G 的父结点,F 是I 的父结点,树中所有结点的最大深度为3(根结点深度设为0),可知F的父结点是( C )。
A. 无法确定B. BC. CD. DE. E24.一棵二叉树的前序遍历序列是ABCDEFG,后序遍历序列是CBFEGDA,则根结点的左子树的结点个数可能是( A )。
A.2 B. 3 C. 4 D. 525.高度为n的均衡的二叉树是指:如果去掉叶结点及相应的树枝,它应该是高度为n-1的满二叉树。
在这里,树高等于叶结点的最大深度,根结点的深度为0,如果某个均衡的二叉树共有2381个结点,则该树的树高为( B )。
A. 10B. 11C. 12D. 1326.如果根结点的深度记为1,则一棵恰有2011个叶结点的二叉树的深度最少是( C )。
A.10 B.11 C.12 D.1327.完全二叉树的顺序存储方案,是指将完全二叉树的结点从上到下、从左到右依次存放到一个顺序结构的数组中。
假定根结点存放在数组的1号位置上,则第k号结点的父结点如果存在的话,应当存放在数组中的( C )号位置。
A. 2kB. 2k+1C. k/2下取整D. (k+1)/228. 满二叉树的叶节点为N,则它的节点总数为( C )A.NB.2NC.2N-1D.2N+1E.2^N-129. 完全二叉树共有2N-1个节点,则它的叶节点数为(B)A. N-1B.NC. 2*ND.2^N-130.二叉树T,已知其前序遍历序列为1 2 4 3 5 7 6,中序遍历序列为4 2 1 5 7 3 6,其后序遍历序列为( B )A.4 2 5 7 6 3 1B.4 2 7 5 6 3 1C.4 2 7 5 3 6 1D.4 7 2 3 5 6 1E.4 5 2 6 3 7 131.已知7个节点的二叉树的先根遍历是1 2 4 5 6 3 7(数字为节点的编号,以下同),中根遍历是4 2 6 5 1 7 3,则该二叉树的后根遍历是( A )。
A.4 6 5 2 7 3 1 B.4 6 5 2 1 3 7 C.4 2 3 1 5 4 7 D.4 6 5 3 1 7 232.已知6个结点的二叉树的先根遍历是1 2 3 4 5 6(数字为结点的编号,以下同),后根遍历是3 2 5 6 4 1,则该二叉树的可能的中根遍历是( B )A. 3 2 1 4 6 5B. 3 2 1 5 4 6C. 2 1 3 5 4 6D. 2 3 1 4 6 533.二叉树T,已知其先根遍历为1 2 4 3 5 7 6,中根遍历为2 4 1 5 7 3 6,后跟遍历是( B )A. 4 2 5 7 6 3 1B. 4 2 7 5 6 3 1C.7 4 2 5 6 3 1D. 4 2 7 6 5 3 134.设T是一棵有n个顶(定错)点的树,以下说法不正确的是( A )。
A.T有n条边B.T是联通的C.T是无环的D.T有n-1条边。
35. 一个包含n个分支结点(非叶结点)的非空二叉树,它的叶结点数目最多为(D)A. 2n + 1B. 2n-1C. n-1D. n+136.如果树根算第1层,那么一颗n层的二叉树最多有( A )个结点。
A. 2n-1B. 2nC. 2n+1D. 2n+137.平面上有五个点A(5, 3), B(3, 5), C(2, 1), D(3, 3), E(5, 1)。
以这五点作为完全图G 的顶点,每两点之间的直线距离是图G 中对应边的权值。
以下哪条边不是图G 的最小生成树中的边( D )。
A. ADB. BDC. CDD. DEE. EA38.无向完全图是图中每对顶点之间都恰有一条边的简单图。
己知无向完全图G有7个顶点,则它共有( B )条边。
A.7 B.21 C.42 D.4939.广度优先搜索时,需要用到的数据结构是( B )。
A.链表 B.队列 C.栈 D.散列表40.对一个有向图而言,如果每个节点都存在到达其他任何节点的路径,那么就称它是强连通的。
例如,下图就是一个强连通图。
事实上,在删掉边( A )后,它依然是强连通的。
A.a B.b C.c D.d41.已知n个顶点的有向图,若该图是强连通的(从所有顶点都存在路径到达其他顶点),则该图中最少有多少条有向边?(A)A. nB. n+1C. n-1D. n*(n-1)42. 关于拓扑排序,下列说法正确的是( D )。
A.所有连通的有向图都可以实现拓扑排序B.对同一个图而言,拓扑排序的结果是唯一的C.拓扑排序中入度为0的结点总会排在入度大于0的结点的前面D.拓扑排序结果序列中的第一个结点一定是入度大于0的点43. 有一个由4000个整数构成的顺序表,假定表中的元素已经按升序排列,采用二分查找定位一个元素。
则最多需要几次比较就能确定是否存在所查找的元素( B )A. 11次B. 12次C. 13次D. 14次44.排序算法是稳定的意思是关键码相同的记录排序前后相对位置不发生改变,下列哪种排序算法是不稳定的(D )A. 冒泡排序B. 插入排序C. 归并排序D. 快速排序45.将数组{8,23,4,16,77,-5,53,100}中元素从大到小按顺序排序,每次可以交换任意两个元素,最少要交换(B)次。
A.4B.5C.6D.7E.846.对有序数组{5,13,19,21,37,56,64,75,88,92,100}进行二分查找,成功查找元素19的比较次数是(B)A. 1B. 2C. 3D. 447.将5个数的序列排序,不论原先的顺序如何,最少都可以通过( B )次比较,完成从小到大的排序。