山东大学软件学院算法设计与分析期末考试回忆版
Posted 叶卡捷琳堡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了山东大学软件学院算法设计与分析期末考试回忆版相关的知识,希望对你有一定的参考价值。
一、考试时间
2021年12月13日上午10:10-12:10
本次考试是山东大学软件学院2019级软件工程专业大三上算法期末考试
本学期的算法课上课时间为2-7周,9-14周(实际上13周就结束了),第15周考试
考试范围:除了并查集和35章近似算法不考,其他在老师PPT上的内容都是考试范围
二、考试题目
本次算法考试一共有4道大题,每道大题中有多个小题
2.1 第一大题
(1)请解释RAM模型
详细说明见课件
(2)给定递推式:T(n)=T(3n/4) + nlogn,求T(n)的上界
(3)关于NP归约的问题(英文题)
- 解释“归约”的概念
- 证明顶点覆盖归约到集合覆盖
2.2 第二大题
(1)写出强连通算法的伪代码,证明正确性,分析时间复杂度
(2)在一个无向有权图G中,有一颗最小生成树T,在该图中,将一条边e的权值w增加,设计算法求新的最小生成树,阐述算法思想,写伪代码,证明该算法的正确性(本题为英文题)
2.3 第三大题
(1)动态规划:x的初值为1,每一步可对x进行+1或乘2的操作,求对一个大于0的整数n来说,x经过操作后等于n所需的最小步数。写出Bellman方程,伪代码
(2)分析Floyd算法的思想,写伪代码,分析时间复杂度和空间复杂度
2.4 第四大题
(1)合并砖块问题:假设有n堆砖,每堆砖都有对应的块数。需要将这n堆砖合并,只能合并两堆相邻的砖。合并的代价是这两堆砖砖数之和。设计动态规划算法,使合并代价最小,写算法思想,伪代码,分析时间复杂度
(2)求“最小代价”问题:对于一个有向图,每个点都有一个值wi,wi > 0,原点s到该点的代价为s到该点的wi之和。设计算法,求s到每个点的最小代价,写伪代码,分析时间复杂度,证明算法正确性
三、总结
总的来说,这次的算法考试还是有一定难度的,首先是题目量较大,很多题都要写思想,写伪代码,分析时间复杂度,证明等,比较复杂。但是这次的算法题中,有三道题都来自平时的作业,并且老师最后一节课还提到了RAM模型可能需要掌握。因此总的来说,在考试的时候需要安排好时间,并复习好老师布置的作业,将算法过程熟练掌握,重要的证明同样需要熟练掌握。
祝学弟学妹算法考试95+
以上是关于山东大学软件学院算法设计与分析期末考试回忆版的主要内容,如果未能解决你的问题,请参考以下文章