算法入门

一开始本来想起题名“算法导论”,但是感觉这题名写100篇文章也写不完,秉着起个贱名好养活的精神,于是“算法入门”诞生了。

这篇文章是“学习”网站B站上的麻省理工学院公开课:算法导论的学习笔记


文章目录

      • 运行时间
      • 分析类型
      • **渐进分析**
    • 参考链接


运行时间

  • 与输入有关
  • 输入规模

程序运行上界(代表了某种保证)

分析类型

  • 最坏情况(经常使用)
    T(n) ——当输入规模为n时所消耗的时间,这里的n代表最大值
  • 平均时间
    期望时间
  • 最好情况
    假象(bogus),一般不会发生
  • 速度
    • 相对速度 —— 相同机器
    • 绝对速度 —— 不同机器

渐进分析

  • 忽略掉与机器有关的常量
  • 不检查代码实际运行时间,只关注增长的时间

渐进符号 θ

  • 丢弃低阶项,忽略常数因子
    e.g. 3n^3^ + 90n^2^ - 5n + 6046 ——> θ(n^3^)
    算法入门_第1张图片
    所谓渐进分析,恰如上图,当n足够大,远远大于n0的时候,θ(n2)是远远大于θ(n3)的,但是若输入规模极小,则θ(n2)和θ(n3)均可以。

参考链接

[1] Thomas H.Cormen、Charles E.Leiserson等《算法导论》机械工业出版社.2006

你可能感兴趣的:(code)