第八节 小组学习
1|0错题整理
- 某算法计算时间表示为递推关系式:T(N)=N+T(N/2),则该算法时间复杂度为( )
A.
B.
C.
D.
题解
根据递推关系式
通过递归展开可以观察到:
...
可以看到,递归展开后,每一项都是
因此,总的时间复杂度为
所以,该算法的时间复杂度为
- 斐波那契数列的定义如下:
如果用下面的函数计算斐波那契数列的第 n 项,则其时间复杂度为( )
A.
B.
C.
D.
题解
时间复杂度为
在这个递归函数中,每次递归调用都会生成两个新的递归调用,直到递归到基本情况
递归树的形状与斐波那契数列的定义相对应,每个节点的值都需要计算一次。因此,递归调用的次数与斐波那契数列的第
所以,时间复杂度可以表示为
- 二分搜索算法是利用( )实现的算法。
A. 分治策略
B. 动态规划
C. 贪心法
D. 回溯法
- 设一组初始记录关键字序列为
,则以增量 的一趟希尔排序结束后前4条记录关键字为( )
A.
B.
C.
D.
题解
将序列分成
对每一组进行插入排序:
对组
对组
对组
对组
得到一趟排序后的序列为
因此,一趟希尔排序结束后前
- 下列算法中,没有用到贪心思想的算法为( )
A. 计算无向图最小生成树的算法。
B. 计算无向图点中每对节点之间最短路的算法。
C. 计算无向图单源最短路路径的算法。
D. 以上算法均使用了贪心的思想。
题解
选项
组合题
已知两个长度均为
的有序数组 和 (均为递增序,但不保证严
格单调递增),并且给定正整数( ),求数组 和 归并排序后的数组里第k小的数值。试补全程序。
- ①处应填( )
A. (m1+m2)*2
B. (m1-1) +(m2 - 1)
C. m1+m2
D. (m1+1)+(m2+1)
你的答案 D
正确答案 C
题解
在第10处填入选项C. m1 + m2 是正确的选择。
这是因为我们需要计算归并排序后的数组中,前m1 + m2个元素的个数,以确定我们当前的划分是否包含了第k小的数值。因为a1和a2都是递增的有序数组,我们可以通过比较m1和m2所对应的元素来确定划分的位置。
第10处的代码应该是 int cnt = m1 + m2;
- ②处应填( )
A. a1[m1]== a2[m2]
B. al[m1]<= a2[m2]
C. al[m1] >= a2[m2]
D. al[m1] != a2[m2]
你的答案 B
正确答案 B
题解
填入选项B. al[m1] <= a2[m2] 是正确的选择。
我们需要比较a1[m1]和a2[m2]的大小来判断当前的划分情况。如果a1[m1]小于等于a2[m2],则意味着a1[m1]及其左侧的元素都不会是第k小的数值,我们需要将划分向右移动,即将left1更新为m1+1。否则,我们将划分向上移动,即将right2更新为m2-1。因此,选项B是正确的选择
- ③处应填( )
A. left1 == right1
B. left1< right1
C. left1 > right1
D. left1 I= right1
你的答案 C
正确答案 C
题解
当left1 > right1时,意味着数组a1的区间已经全部被排除,剩下的第k小的数值必然在数组a2中。因此,我们需要在a2中找到第k小的数值。选项C是正确的选择
- ④处应填( )
A. y=al[k-left2-1]
B. y = al[k - left2]
C. y = a2[k - left1 - 1]
D. y=a2[k - left1]
你的答案 C
正确答案 C
题解
选项C. y = a2[k - left1 - 1] 是正确的选择。
如果left1 == 0,意味着数组a1的所有元素都被排除了,剩下的第k小的数值必然在数组a2中。由于a2是递增序列,第k小的数值就是a2中的第k个元素,即a2[k - left1 - 1]
- ⑤处应填( )
A. y=a1[k - left2 - 1]
B. y = a1[k - left2]
C. y = a2[k - left1 - 1]
D. y = a2[k - left1]
你的答案 A
正确答案 A
题解
填入选项A. y = a1[k - left2 - 1] 是正确的选择。
如果left2 == 0,意味着数组a2的所有元素都被排除了,剩下的第k小的数值必然在数组a1中。由于a1是递增序列,第k小的数值就是a1中的第k个元素,即a1[k - left2 - 1]。选项A是正确的选择
给定一个长度为1,000,000的无序正整数序列,以及另一个数n(1<=n<=1000000),接下来以类似快速排序的方法找到序列中第n大的数(关于第n大的数:例如序列{1,2,3,4,5,6}中第3大的数是4)。
- ①处应填( )
A. a[tmp]
B. a[left]
C. a[right]
D. a[1]
你的答案 A
正确答案 B
- ②处应填( )
A. a[j]<value
B. a[j]>value
C. a[i]<a[j]
D. a[i]>a[j]
你的答案 B
正确答案 A
- ③处应填( )
A. a[i]<value
B. a[i]>value
C. a[i]<a[j]
D. a[i]>a[j]
你的答案 A
正确答案 B
- ④处应填( )
A. left,i,n
B. left,i-1,n
C. i+1,right,n
D. i,right,n
你的答案 C
正确答案 C
- ⑤处应填( )
A. left,i,n
B. left,i-1,n
C. i+1,right,n
D. i,right,n
你的答案 B
正确答案 B
__EOF__

本文链接:https://www.cnblogs.com/So-noSlack/p/17563948.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文来自博客园,作者:So_noSlack,转载请注明原文链接:https://www.cnblogs.com/So-noSlack/p/17563948.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?