名词解释 算法的有限性_算法分析与设计名词解释

本文介绍了算法分析中的关键概念,包括哈夫曼编码的最优前缀特性,动态规划的最优子结构和重叠子问题特点,以及在0-1背包问题和矩阵链乘问题中的应用。同时,提到了动态规划算法的时间复杂度,并讨论了冒泡排序、递归过程的优缺点。
摘要由CSDN通过智能技术生成

定任一字符的编码都不是另一个字符编码的前缀,则称这样的编码为前缀码

11.哈夫曼编码:哈夫曼提出的贪心算法可以构造最优前缀编码,这样产生的编码称为哈夫曼编码。

12.最优子结构:如果问题的最优解包含子问题的最优解,则问题展示了最优子结构。

13.贪心选择的性质:通过局部最优选择(贪心),可以得到问题的全局最优解。

14.在矩阵链乘问题中,能对矩阵进行分割的叫非平凡矩阵链乘。

15.在矩阵链乘问题中,不能对矩阵进行分割的叫平凡矩阵链乘。

16.动态规划算法的运行时间取决于两个因素的乘积:

17.特点:此方法的主要特点是通过采用表格技术。计算所有子问题的解。计算的过程从小问题到大问题,并将计算结果存储在一张表中。

18.优点:一旦一个子问题被解决,就存储其结果,此后遇到同样的子问题,就不再重复计算。用多项式算法代替指数算法。

19.应用:动态规划典型的应用领域是组合优化问题。

动态规划应用于组合优化问题时,问题自身应有的两个特点。这就是问题具有最优子结构和重叠子问题

在O-1背包问题中,共有θ(n)个子问题,每个子问题至多需要做出w次决策,即需要检查w次才能确定子问题的最优解,因此,运行时间为O(nw)。

对于矩阵链乘问题,共有θ(n2)个子问题,每个子问题至多需要做出n-1次决策,因此运行时间为O(n3)。

冒泡排序(bubble sort)属于基于交换思想的排序方法。它将相邻的两个元素加以比较,若左边元素值大于右边元素值,则将这两个元素交换;若左边元素值小于等于右边元素值,则这两个元素位置不变。右边元素继续和下一个元素进行比较,重复这个过程,直到比较到最后一个元素为止。

最优子结构随问题域的变化有两种方式:

(1)原问题的最优解中,利用了多少个子问题?

(2)决定最优解中使用哪些子问题需做多少次决策?

在0-1背包问题中,子问题为i个物品在背包容量为w时的最优解,它一定包括前i-1个物品的最优解。最优解利用两个子问题,即c[i-1,w]和c[i-1,w-wi]。每个子问题需要做W(1≤w≤W)次决策,以便决定一个最优解。

在矩阵链乘子问题AiAi+1……Aj中,需做j-i次决策(1≤k&ltj),并且最优解利用两个子问题,即M [I,k]和M [k+1,j]

在装配线调度子问题作2次决策,最优解利用了两个子问题,即F [1,k]和F [2,k-1]或F [2,k]和F [1,k-1]

递归过程的优点:结构清晰,程序易读,正确性容易证明 。

缺点:运行的效率比较低 、花时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值