算法导论复习要点

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、基础知识部分

1.算法的复杂性有时间复杂性和空间复杂性之分。

2.算法是由若干条指令组成的有穷序列,且要满足输入、输出、确定性和有限性四条性质。

3. 快速排序算法是基于分治策略的一种排序算法。

4.矩阵连乘问题的算法可由动态规划设计实现。

5、算法是指解决问题的一种方法或一个过程。

6、从分治法的一般设计模式可以看出,用它设计出的程序一般是递归算法。

7、问题的最优子结构性质是该问题可用动态规划算法或贪心算法求解的关键特征。

8、贪心选择性质是贪心算法可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。

9.贪心算法的基本要素是贪心选择质和最优子结构性质。

10.动态规划算法的两个基本要素是最优子结构性质和重叠子问题性质。

11、合并排序算法是利用( A )实现的算法。

A、分治策略

B、动态规划法

C、贪心法

D、回溯法

12、下列不是动态规划算法基本步骤的是( A )。

A、找出最优解的性质

B、构造最优解

C、算出最优解

D、定义最优解13.下列算法中通常以自底向上的方式求解最优解的是( B )。

A、备忘录法

B、动态规划法

C、贪心法

D、回溯法

14.备忘录方法是那种算法的变形。( B )

A、分治法

B、动态规划法

C、贪心法

D、回溯法15.最长公共子序列算法利用的算法是( B )。

A、分支界限法

B、动态规划法

C、贪心法

D、回溯法16.贪心算法与动态规划算法的主要区别是( B )。

A、最优子结构

B、贪心选择性质

C、构造最优解

D、定义最优解

17. ( D )是贪心算法与动态规划算法的共同点。

A、重叠子问题

B、构造最优解

C、贪心选择性质

D、最优子结构性质

18. 矩阵连乘问题的算法可由( B)设计实现。

A、分支界限算法

B、动态规划算法

C、贪心算法

D、回溯算法

19、使用分治法求解不需要满足的条件是(A )。

A 子问题必须是一样的

B 子问题不能够重复

C 子问题的解可以合并

D 原问题和子问题使用相同的方法解

20.下列是动态规划算法基本要素的是( D )。

A、定义最优解

B、构造最优解

C、算出最优解

D、子问题重叠性质

二、分析解答部分

1、堆的高度与元素个数之间的关系

2、散列表技术中碰撞的定义与解决方法是什么

3、平摊分析的方法有哪些?重点是势能法的应用。

例、对某个数据结构执行一个n个操作的序列。如果i为2的整数次幂,则第i 个操作的代价为i,否则为1.请用势能分析来确定每次操作的平摊代价。

解:不妨设k i j +=2,其中k 和j 均为非负整数,且j 取满足等式最大的整数。定义第i 个操作i D 的势能函数为k D i 2=Φ)(,

下面分析第i 个操作i D 的平摊代价。

当0=k 时,第i 个操作i D 的实际代价i C i =,从而

2]

2)12(2[)]

212(20[)]()([ˆ11

+-=---=---+=Φ-Φ+=--i i i i D D C C j j j i i i i

当0≠k 时,第i 个操作i D 的实际代价1=i C ,从而

3

)]

1(22[1)]()([ˆ1

=--+=Φ-Φ+=-k k D D C C i i i i

所以第i 个操作i D 的平摊代价总为)(1O 。 4、贪心算法的应用,参考书上的0-1背包问题和部分背包问题的例子。

5、作图说明利用合并排序算法将输入数组(3,7,12,32,5,20,16,28)A =按从小到大排序的执行过程。

6、作图说明利用堆排序(HEAPSORT )将数组(2,8,17,4,11,14)A =从小到大排序的执行过程,注意包含建最大堆(BUILD-MAX-HEAP )的执行过程。

7、用主方法求解递归式紧确的渐进界,比如

34(1)()6();(2)()6();(3)()6();232

n n n T n T n T n T n T n T n =+=+=+ 8、写出利用动态规划解矩阵链乘问题的最小代价的递归式,并由此给出维数序列为(35,15,5,10,20)A =的最优加全括号的方案。

9、会写出利用动态规划解最长公共子序列(LCS )问题的最大长度的递归式,并由此确定(1,0,0,1,0,1,0,1)A =和(0,1,0,1,1,0,1,1,0)B = 的最长公共子序列。

10、对某个数据结构执行一个n 个操作的序列。如果i 为2的整数次幂,则第i 个操作的代价为i ,否则为1.请用聚集分析来确定每次操作的平摊代价。

11、猜测下列递归式的良好渐进界,并用代换法证明你的猜测:(1).()4()2n T n T n =+的解为2()n Θ; (2).()2()2n T n T n ⎢⎥=+⎢⎥⎣⎦

的解为(lg )O n n 。 12、给出红黑树的定义,并由此证明:(1)从根到叶子的最长的可能路径不多于最短

的可能路径的两倍长。 (2)一棵有n 个内节点的红黑树的高度至多为

1lg +1)2

n ( 13、给出渐进记号Θ记号、Ω记号和Ο记号的定义,并证明:对任意实常数a 和b, 其中b>0,)(a n b

b n Θ=+)(,提示:当n 足够大时,n 2a n n 21≤+≤

相关文档
最新文档