public:cs:algorithm:clrs

这是本文档旧的修订版!


CLRS 算法导论

  • 循环不变式,三条性质:
    • 初始化:循环第一次迭代之前,它为真
    • 保持:如果某次迭代之前它为真,那么下次迭代之前仍为真
    • 终止:循环终止时,不变式有其性质助于证明算法正确
  • 通常集中于只求最坏情况运行时间,除了随机化算法
  • 感兴趣的是运行时间的增长率增长量级
  • 插入排序增长率为 Θ(n2)
  • 分治法:
    • 分解原问题为若干规模较小实例的子问题
    • 解决子问题,递归求解子问题,直到子问题足够小时直接求解
    • 合并子问题的解,成为原问题的解
  • 归并排序 MERGE-SORT
    • 增长量为 Θ(nlgn)
  • 思考题2-2 冒泡排序 BUBBLE-SORT
    • 最坏Θ(n2)
  • 渐近紧确界(asymptotically tight bound)
  • Θ(g(n)) 表示以下函数的集合
    • Θ(g(n)):={f(n):c1c2n0(nn00c1g(n)f(n)c2g(n))}
    • Θ 记号渐近地给出一个函数的上界下界
    • 对任意多项式 p(n)=di=0aini 可证 p(n)=Θ(nd)
  • 当只推渐近上界时,使用 O 记号
    • O(g(n)):={f(n):cn0(nn00f(n)cg(n))}
    • 显然 Theta(g(n))O(g(n))
  • 相应得,Ω 记号只推一个函数的渐近下界
    • Ω(g(n)):={f(n):cn0(nn00cg(n)f(n))}
  • public/cs/algorithm/clrs.1561043944.txt.gz
  • 最后更改: 2019/06/20 23:19
  • oakfire