排序相关选择题

这篇博客详细解析了关于排序算法、查找方法及其时间复杂度的选择题,涵盖了快排、二分查找、稳定排序、数据结构存储等知识点,同时涉及了计算机科学的基础知识,如数组、二维数组、字符串、ASCII码等。题目内容包括最佳时间复杂度、数据存储、有序表查找策略等,旨在帮助读者深入理解这些概念。
摘要由CSDN通过智能技术生成

1.The best time complexity of quick sort algorithm is:(C)

A:O(lgn)
B:O(n)
C:O(nlgn)
D:O(n*n)

快排时间复杂度:最好O(nlgn),平均O(nlgn),最坏O(n^2); 这里问的是最好情况下

快排、堆排序、归并排序的平均时间复杂度为O(nlgn);

冒泡、选择排序O(n^2)

计数排序O(n^1.3)

 2.c中,二维数组初始化的方法是:int a[3][3]={ {1},{2},{3}};说法是否正确? (A)

A:正确
B:错误

二维数据就是以数组为元素的数组,外面的大括号表示这个数组,里面的大括号表示数组形式的元素,只有一个数字说明元素只赋了A[0][0],A[1][0],A[2][0],其余元素都没赋值

3.有个长度为12的无重复有序表,按折半查找法进行查找,在表内各元素等概率情况下,查找成功所需的平均比较(三元比较)的次数为(B)

A:35/12
B:37/12
C:39/12
D:43/12

已知元素序号(即下标)范围为1~12。查找1次成功的结点为:6。查找2次成功的结点为:3,9。查找3次成功的结点为:1,4,7,11。查找4次成功的结点为:2,5,8,10,12。成功查找所有结点的总的比较次为:1×1+2×2+3×4+4×5=37平均比较次数为37/12。

4.请问对一个排好序的数组进行查找,用平均时间复杂度最小的算法,时间复杂度为(B)

A:O(n)
B:O(lgn)
C:O(nlgn)
D:O(1)

已知数组顺序了,二分查找法复杂度最低

5.若数组A[0…m-1][0…n-1]按列优先顺序存储,则aij地址为( A)。

A:LOC(a00)+[j*m+i]
B:LOC(a00)+[j*n+i]
C:LOC(a00)+[(j-1)*n+i-1]
D:LOC(a00)+[(j-1)*m+i-1]

将i,j=0代入,排除C,D;(这个只是排除错误答案) 2.因为列主序,所以aij前有j列*m个+i个元素。

6.二维数组k[1..7,1..9],每元素大小占2个字节,而且使用列存储,a[5,4]的偏移量为(D)个字节。

A.78
B.39
C.25
D.50

首先可以确定的是9行7列,问题中的a[5][4]指的是在第五列的第四个,这个地方大家可能误解了,还有就是二维数组转化成一维数组的公式a[x][y]=b[x*列数+y],其中的x,y的起始地址为0,不是1,所以这题应该减一,也就是a[4][3],3*7+4=25,再乘以2                                                                                               偏移量= 起始地址 + (a[1][1] + a[2][1] + a[1][2]) * size

7.在154个元素组成有序表进行二分法查找,可能的比较次数为(BCD)

A.10
B.8
C.4
D.1

1.在这里光判断[log2(154)] = 7,最差的情况下找8次,所以8次及8次以内都有可能找到

2.折半查找过程可用二叉树来描述,把有序表中间位置上的结点作为树的根结点,左子表和右子表分别对应树的左子树和右子树。折半查找的过程就是走一条从根节点到被查结点的一条路径,比较的次数就是该路径中结点的个数,即,该结点在树中的层数。 所以该题可以转换为求有154个结点的二叉树有几层,小于等于这个层数的数值就是答案。 又知,深度为K的二叉树最多有2的K次方-1个结点,深度为7的二叉树最多有127个结点,深度为8的二叉树最多有255个结点,所以154个结点的二叉树有8层。

8.Which of the following sorting algorithm(s) is(are) stable sorting?(AD)

A.bubble sort
B.quick sort
C.heap sort
D.merge sort
E.Selection sort

口诀:“一堆希尔快选”    都是不稳定    其他都是稳定的

9.设有序顺序表中有n个数据元素,则利用二分查找法查找数据元素X的最多比较次数不超过(D)。和第7题一样

A.log2n+1
B.log2n-1
C.log2n
D.log2(n+1)

10.在有序表( 7, 13, 33, 87, 99, 97, 117, 123,129,131,137)中,使用二分查找算法查找13时需要的关键字比较次数是(A)

A.4
B.3
C
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值