算法理论知识考核试题及答案.docx
《算法理论知识考核试题及答案.docx》由会员分享,可在线阅读,更多相关《算法理论知识考核试题及答案.docx(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、算法理论知识考核试题一.选择题1.2 n=0(100n 2)单 *A.正确B.错误V2.10=B(logl0)单选题*A.正确VB.错误3.2 n=0(3 n)。()单选题*A.正确,B.错误4.logn 2=0(logn+5)单选题*A.正确VB.错误5 .针对JII页序查找算法,影响它时间复杂度的因素只有算法的输入序列()单选题*A.正确B.错误V6 .n!的时间复杂度为0(n)单选题*A.正确VB.错误41.背包问题:n个物品和1个背包。对物品i,其价值为vi,重量为wi,背包的容量为W。如何选取物品装 入背包,使背包中所装入的物品的总价值最大?物品可以分割。该问题的贪心策略是()。()
2、单选题*A.重量小的优先装入背包B.体积小的优先装入背包C,价值大的优先装入背包D.单位重量的价值大的优先装入背包V42调度问题有n个客户带来n项任务每项加工时间已知,设为tij = l,2,,n。从0时刻开始,陆续安排 到一台机器上加工。每个任务的完成时间是从0时刻到该任务加工完成的时间。为了使尽可能多的客户满 意,我们希望找到是的总等待时间最少的调度方案。该问题的贪心策略是()。()单选题*A.加工时间长的优先安排B.加工时间短的优先安排VC.完成时间早的优先安排D.等待时间长的优先安排43 .找零钱问题的贪心策略是()。()单选题*A.面值大的钱币优先找出B.面值小的钱币优先找出C,面值
3、小于待找钱数且面值最大的优先找出VD.以上都不对44 .物品不可拆开的最优装载问题的贪心策略是()。()单选题*A.体积大的集装箱优先装B.体积小的集装箱优先装C.重量大的集装箱优先装D.重量小的集装箱优先装V45 .会场安排问题的最好的贪匕策略是()。()单选题*A.在不冲突的情况下,开始时间早的优先安排46 在不冲突的情况下,使用时间短的优先安排C.在不冲突的情况下,使用时间长的优先安排D.在不冲突的情况下,结束时间早的优先安排V46.调度问题的算法设计策略是(工()单选题*A.加工时间短的优先安排VB.加工时间长的优先安排C.等待时间短的优先安排D.以上都不对47.以下问题中,哪些问题的
4、分治算法消耗的时间与输入序列无关。()单选题*A.二分查找B.合并排序VC.快速排序D.最小值问题48.有关2个n位大整数乘法问题说法正确的是(1()多选题*A.将两个n位大整数分解为4个规模大致相等的n/2位整数的整数乘法问题VB.递归解决4个子问题VC.子问题的解需要归并成原问题的解VD.子问题的解本身就是原问题的解49.分治算法的步骤有(1()多选题*A.分解VB.治理VC.递归D.合并50 .分治算法的思想是()多选题*A,将规模较大的问题划分为规模较小的相同子问题VB.子问题之间相互独立VC.子问题之间不相互独立D.递归解决划分得到的子问题VE.将子问题的解归并得至嫄问题的解V51
5、.大整数A和B的乘法,将A分成位数大致相等的两部分A1和A2,将B分成位数大致相等的两部 分B1和B2,以下描述正确的是()。()多选题*A.子问题的解归并为原问题解的方法为:AxB=10nAlBl+10n/2(AlB2+A2Bl)+A2B2VB.子问题的解归并为原问题解的方法为:AxB = 10nAlBl + 10n/2(Al-A2)(B2- B1)+A1B1+A2B2)+A2B2VC.子问题的解归并为原问题解的方法为:AxB=10nAlBl + 10n/2(Al+A2)(Bl+B2)-AlBl- A2B2)+A2B2VD.以上方法都不对。52 .关于快速排序分治算法时间复杂度描述正确的是(
6、)。()多选题*A.快速排序分治算法最好情况下的时间复杂度为O(nlogn)”B.快谢E序分治算法最坏情况下的时间复杂度为O(n 2)7C.快速排序分治算法平均情况下的时间复杂度为O(n 2).D.二快速排序分治算法平均情况下的时间复杂度为O(nlogn).V53 .有关快速排序的分治算法描述正确的是()。()多选题*A.快速排序Aleft,right,选取基准元素的方法,将待排序元素分解为两个子问题。VB.快速排序基准元素的选取可以是待排序元素中的任何一个元素。VC.快速排序划分的两个子问题规模大致相等。D.快速排序Aleft,right,递归算法的边界条件是leftrightV54 .关于
7、二分查找时间复杂度描述正确的是()。()多选题*A.二分查找算法最好情况下的时间复杂度为O(1).VB.二分查找算法最坏情况下的时间复杂度为0(n).C.二分查找算法最坏情况下的时间复杂度为O(logn).VD.二分查找算法平均情况下的时间复杂度为O(logn).V55 .有关合并排序的分治算法描述正确的是()。()多选题*A.合并排序Aleft,right的元素,采用的分解方法是(left+right)/2。VB.合并排序Aleft,right的元素,采用的分解方法是(right-left)/20C.合并排序Aleft,right的元素,需要治理规模大致等于(right-left+l)/2的
8、两个子问题。VD.合并排序需要将两个有序的子序列归并成一个有序的子序列。V56 .有关循环赛日程表分治算法描述正确的是()。()多选题*A.循环赛日程表给定2 k个运动员,采用2 k/2的方法将运动员分成两组。VB.循环赛日程表算法先安排组内的赛程,再安排两组对打。VC.循环赛日程表算法的边界条件是两个运动员,一天的比赛。VD.循环赛日程表算法为2 k个运动员安排了 2 k-1天的比赛。57 .下述关于二分查找(折半查找)算法描述正确的是()。()多选题A.二分查找是在任意给定的n个元素序列中查找指定元素。B.二分查找的序列为Aleft,right,分解操作为:(right-left)/2C.
9、二分查找根据比较的结果,好的情况是相等,算法结束。坏的情况是进入其中一个子问题继续查找。VD.若二分查找的序列为Aleft,right,用递归来解决子问题,则边界条件是leftright。V58.分治算法核心就是分而治之,其中的“治”描述正确的是()。()多选题*A.分治法通过治理小问题来治理大问题。VB.分治法递归治理小问题。VC.分治法需要将子问题的解归并成大问题的解。VD.治理子问题时,会有重复性治理子问题的现象。59.分治算法的基本思想描述正确的是()。()多选题*A.分治法将规模大的问题分解成规模较小的问题解决。VB.分治法划分的小问题相互重叠。C.分治法一般采用递归的方法解决子问题
10、。VD.分治法划分的小问题规模小到一定程度时容易解决。V60.根据下面斐波那契数列的递归算法,可知斐波那契数列的第n项的递归式为( def Fibonacci(int num): if(num = 0 | num = 1):return num return Fibonacci(num-+ Fibonacci(num - 2)。()单选题*A. Fibonacci(n)=0 当 n=0 时B. Fibonacci(n)=l 当 n=l 时C. Fibonacci(n)=Fibonacci(n-l) + Fibonacci(n-2)当 n1 时VD. Fibonacci(n)=Fibonacci
11、(n-2)+Fibonacci(n-3)当 n1 时61.下面代码为求n !的递归算法,该代码反应的n!问题递归实现的停止条件(边界条件)为(I ()def fun(n):if (n = 1):return 1else:return fun(n -1) * n单选题*A. n!=l 当 n=0 时B. n!=l 当 n=l 时。C. n!=l 当 n1 时D. n!=l 当 n = 1 时62 .以下哪个问题的时间复杂度与输入序列有关()单选题*A.二分查找VB.最小值问题C.合并排序D.以上都不对63 .以下函数的功能是()def Q(R, low , high):if(lowhigh):#
12、仅当区间长度大于1时才须排序pivotpos=Partition(R,low,high) #划分后的基准元素所对应的位置Q(R,low,pivotposl)#对左区间递归排序Q(R,pivotpos+l,high)#对右区间递归排序单选题*A.二分查找B.二分求最值C.合并排序D.快速排序V64 .以下代码功能为合并排序,请根据注释按照数顺序选择合适的语句填入对应的括号。def MergeSort(A , low , high):if (low high):()#分解()#递归序列左半部分()#递归序列右半部分Merge(A, low, middle, high)#子问题的解合并成原问题的解单
13、选题*A. middle=(high-low)/2; MergeSort(A,low,middle); MergeSort(A,middle+l/high);B. middle=(low+high)/2; MergeSort(A,low,middle); MergeSort(A,middle+l,high);VC. middle=(low+high)/2; MergeSort(A,middle+l,high); MergeSort(A,low,middle);D. middle=(high-low)/2; MergeSort(A,middle+l,high); MergeSort(A,low,
14、middle);65.棋盘覆盖问题的分解方法为(工()单选题*A.B.C.VD.以上分解的方法都不对66.合并排序的分治算法时间复杂度的是()。()单选题*A. O(logn)B. O(nlogn)VC.D.67.解决给定的5个矩阵连乘问题:矩阵A1 ( 3x2 1 A2 ( 2x5 A3 ( 5x10 A4 (10x2 )和A5 (2x3 ),设表示Ai.Aj的最优计算次序对应的乘法计算次数(最优值),P为存储矩阵行列的数组, 其中Pi是第i个矩阵的列、第i-1个矩阵的行。求解最优值递归关系是为:,根据该递归关系式,求解过程 中得到下面最优决策的二维表:由此,可得上述5个矩阵连乘的最优计算次
15、序为()单选题*A. ( Al ( A2 ( A3 ( A4A5 )B. ( A1A2 )( A3 ( A4A5 )C. (A1A2)( A3A4) A5)D. (A1(A2(A3A4)A5) V68 .关于动态规划和回溯法的区别,以下表述不正确的是。()单选题*A.动态规划和回溯法都可以用来求解最优化问题,但回溯法是基于枚举解的思想,动态规划则是基于 构造子问题最优值关系的方式B.在遇到重叠子问题的时候,动态规划思想会使用存储最优值的方式直接排除,而回溯法一般做法是 设法避环和剪枝,降氐其影响C.在求解相同问题时,动态规划必然比回溯法浪费空间,但是更节约时间V69 .关于动态规划与分治法的区
16、别,表述不正确的是。(”单选题*A.动态规划划分的子问题一般具有重叠子问题,分治法则通常互不相交B.动态规划建立在描述子问题最优值关系的状态转移方程基础上,分治法一般不需要建立类似的最优 值之间的数量关系C.分治法能写成递归形式,动态规划不能写成递归形式,D.动态规划一般用来求解最优化问题,分治法多不用于求解最优化问题,70.矩阵连乘问题中,A1矩阵大小是100*5,A2矩阵大小为5*30 , A3矩阵大小为30*10,则乘法次序(A1*A2)*A3需要的乘法次数是。()单选题*A.15000B. 30000C. 45000VD. 45000000071 .规模为5矩阵连乘问题,计算次序有()
17、种。()单选题*A. 10B. 12C. 14VD. 1672 .根据下面斐波那契数列的递归算法,可知斐波那契数列的第n项的递归式为(工defFibonacci(int num): if(num = 0 | num = 1):return num return Fibonacci(num-1)+Fibonacci(num - 2)。()单选题*A. Fibonacci(n)=0 当 n=0 时B. Fibonacci(n)=l 当 n=l 时C. Fibonacci(n)=Fibonacci(n-l) + Fibonacci(n-2)当 n1 时VD. Fibonacci(n)=Fibonac
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 理论知识 考核 试题 答案
限制150内