第2章 算法分析

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

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

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

一个能解决问题但需要成百上千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)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本章会让你熟悉在全书中使用的算法设计和分析框架。虽然本章是独立的,但是仍包含一些对第3章、第4章使用的材料的引用。...
    橡树人阅读 721评论 0 3
  • KVO提供一种机制,当指定的被观察的对像的属性被修改后,KVO会自动通知响应的观察者,KVC(键值编码)是KVO的...
    Gunks阅读 2,523评论 0 2
  • 你想成功没有人阻挡你,你不想成功没有人帮的了你。从今以后我不会错过每一堂对我成长有帮助的课~不为别的只为遇见更美好...
    凤凰天后阅读 1,297评论 0 0
  • “闲云潭影日悠悠,物转星移几度秋。阁中弟子今何在,槛外长江空自流。”“流光容易把人抛,红了樱桃,绿了芭蕉。”那20...
    你的前女友阅读 2,361评论 0 0
  • 李思思 1988年生,职业画家 ,号宽思,毕业于哈尔滨师范大学美术系,擅畫写意花鸟,人物。松石,昆虫,主攻工笔,笔...
    李思聪书画阅读 3,060评论 0 4

友情链接更多精彩内容