第2章 算法分析

作者: 橡树人 | 来源:发表于2020-03-04 07:32 被阅读0次

一个算法就是解决某个问题需要遵循的一套描述清晰的指令集。

一旦给出某个问题的算法且判断该算法是正确的后,一个非常重要的步骤就是分析该算法需要多少资源,比如时间或者空间等。

一个能解决问题但需要一年的时间的算法是毫无意义的。

一个能解决问题但需要成百上千G内存的算法是毫无意义的。

在这一章,我们将会学到

  • 如何估计一个程序的运行时间?
  • 如何将一个程序的运行时间从年或者天缩减到秒?
  • 滥用递归会带来什么后果?
  • 针对求一个数的幂次方和两个数的最大公约数,都有哪些有效的算法?

算法分析所需的数学知识

关键词 相对阶 相对增长速率

如何确定函数的相对阶
一般来说,给定两个函数f(n)和g(n),总存在点使得f(n)<g(n)。基于这些点就判断f(n)<g(n)是没有意义的。
所以,确定函数的相对阶就是比较两个函数的相对增长速率。

函数相对增长速率分类

  • 小于等于 T(n)=O(f(n))
  • 大于等于 T(n)=\Omega(g(n))
  • 等于 T(n)=\Theta(h(n))
  • 严格小于 T(n)=o(p(n))

例1 证明:1000N=O(N^2)

相关文章

网友评论

    本文标题:第2章 算法分析

    本文链接:https://www.haomeiwen.com/subject/pyzulhtx.html