山东大学软件学院2022年春算法设计与分析考试

山东大学软件学院2022年春算法设计与分析考试

时间:2022年6月9日14:00-16:00

试题
一、 选择题(单项选择题 5*2分)
  1. f ( n ) = 1 100 n 3 + 2 n + 3 f(n)={\frac{1}{100}n^3+2n+3} f(n)=1001n3+2n+3,判断 f ( n ) = O ( n 3 ) , f ( n ) = Θ ( n 3 ) f(n)=O(n^3),f(n)={\Theta{(n^3)}} f(n)=O(n3),f(n)=Θ(n3)?两个都对。

  2. 判断无向图的DFS算法不会产生前向边,后向边,树边,交叉边的哪些边?

  3. 强连通算法:问你 G T G^T GT G G G是否具有相同的强连通分量?

    在这里插入图片描述

  4. 考查三角不等式的选择问题, δ ( s , v ) ≤ δ ( s , u ) + w ( u , v ) {\delta(s,v)}{\leq}{\delta(s,u)+w(u,v)} δ(s,v)δ(s,u)+w(u,v).

  5. Bellman-Ford算法的时间复杂度问题, Θ ( V E ) {\Theta(VE)} Θ(VE).

二、 填空题(填空题 5*3分,顺序不一定对)
  1. RAM模型中机器会执行哪三条类型的指令,算术指令,数据移动指令,控制指令。

  2. 在这里插入图片描述

  3. 在这里插入图片描述

  4. (忘了,好像是写一个算法的复杂度的问题)反正是一个一个复杂度为 Θ ( V + E ) {\Theta(V+E)} Θ(V+E)的算法,应该是强连通算法的复杂度?

    在这里插入图片描述

  5. 在这里插入图片描述

    在这里插入图片描述

    这里以矩阵乘法计算所有顶点对的最短路径问题为例,请解释参数m的含义,类似这样的。

三、 解答与证明题(共6题,75分)
  1. (10分)(英文题)请求出 T ( n ) = 2 T ( n / 5 ) + n 2 lg ⁡ n T(n)=2T(n/5)+n^2\lg{n} T(n)=2T(n/5)+n2lgn的上界。

  2. (10分)(中文题)请解释多项式归约和传递的含义;请解释P=NP的含义。

  3. (15分)(英文题)

    1. 请设计算法求解图 G G G的最小生成树,并给出伪代码,分析时间复杂度。
    2. 如果我在图 G = ( V , E ) G=(V,E) G=(V,E)的顶点不变的基础之上,已知有一颗最小生成树 T T T,那么加入边 ( u , v ) (u,v) (u,v) u , v ∈ G . V u,v{\in}G.V u,vG.V,请设计有效的算法判断加入边之后原来的最小生成树 T T T是否仍旧是现在的新图的最小生成树,写出算法思想,伪代码,并证明你设计的算法的正确性。
  4. (15分)(英文题)请写出Floyd-Warshall算法的思想,现在我有给定的一个有向带权重图,已知 D 0 , D 1 , D 2 , D 3 D^0,D^1,D^2,D^3 D0,D1,D2,D3,求解 D 4 D^4 D4.(前面的四个矩阵给了,让你求解第五个矩阵,这些个矩阵都是4*4的),然后写出所有顶点对之间的最短路径,给出该算法的复杂度(含时间、空间复杂度).

    本题有一个矩阵大概是这样的:
    [ 0 6 3 3 2 0 3 3 − 1 2 0 7 − 1 2 1 0 ] \begin{bmatrix} 0&6&3&3\\ 2&0&3&3\\ -1&2&0&7\\ -1&2&1&0\\ \end{bmatrix} 0211602233013370
    在这里插入图片描述

    (数据是编的,有几个记不得了,有向图的形状是差不多的,4*4的矩阵).

  5. (15分)(中文题)动态规划算法设计

    已知一个字符串由a,b,c组成,其中不含有连续的两个a,问长度为 n n n满足上述条件的字符串一共有多少个?请写出算法思想和伪代码,并分析时间复杂度。

  6. (15分)(中文题)贪心算法-集合覆盖问题

    给定 F F F由n个集合组成,集合中的元素均连续的取自整数集 { 1 , 2 , 3 , … , k } \{1,2,3,\dots,k\} {1,2,3,,k},请找到数量最小的集合覆盖整数集 { 1 , 2 , 3 , … , k } \{1,2,3,\dots,k\} {1,2,3,,k}. 请写出算法设计思想和伪代码,并证明你所设计的算法的正确性。

(上述回忆可能存在数据的误差问题,但是大致方向是没什么问题的!)

祝各位算法都可以A+!

  • 3
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值