《算法设计与分析》学习笔记(一)


问题 需要回答的一般性提问,一般含有多个参数,有着自己对应的条件,所有实例构成的抽象的描述。

算法时间复杂度 计数算法所作运算次数。

最坏情况下的时间复杂度W(n)

平均情况下的时间复杂度A(n)


检索 被检索元素x与数组元素 的比较

  • 算法设计步骤
  • 1.问题建模:输入-目标函数-约束条件
  • 2.选择算法,描述算法
  • 3.是否得到最优解,并且证明
  • 4.如果不是,找出反例


NP-hard问题 至今没找到有效算法,至今没人证明对此类问题不存在多项式时间算法。

  • 货郎问题是用蛮力算法解决的,蛮力算法是一种很笨的算法,通过列举各种情况,算出最小工作路径,效率低,例如穷举法。
  • 0-1背包问题 背包容量有限,物品的价值不同,选出最高价值的物品。
  • 双机调度问题 两个机器同时处理一批物品,最短时间。

算法的伪码描述 不是程序代码,只是给出算法的主要步骤。

函数的渐进的界 

O:设f和g是定义域为自然数集N上的函数,若存在整数c和n0,使得对一切n>=n0有 0<=f(n)<=c g(n) 成立,则称f(n)的渐进的上界是g(n),记作:f(n)=O(g(n))。

Ω:设f和g是定义域为自然数集N上的函数,若存在整数c和n0,使得对一切n>=n0有 0<=cg(n)<=f(n) 成立,则称f(n)的渐进的下界是g(n),记作:f(n)=Ω(g(n))。

o:设f和g是定义域为自然数集N上的函数,若任意整数c和n0,使得对一切n>=n0有 0<=f(n)<c g(n) 成立,则称f(n)的渐进的上界是g(n),记作:f(n)=o(g(n))。

w:设f和g是定义域为自然数集N上的函数,若任意整数c和n0,使得对一切n>=n0有 0<=cg(n)<=f(n) 成立,则称f(n)的渐进的下界是g(n),记作:f(n)=w(g(n))。

Ɵ:同时满足O和Ω。


猜你喜欢

转载自blog.csdn.net/chostcat/article/details/81051018
今日推荐