|
|
|
|
移动端

小结

《数据结构与算法分析:Java语言描述(原书第3版)》第2章算法分析,本章对如何分析程序的复杂性给出一些提示。遗憾的是, 它并不是完善的分析指南。简单的程序通常给出简单的分析, 但是情况也并不总是如此。本节为本章的小结部分。

作者:冯舜玺/陈越 译来源:机械工业出版社|2016-04-13 11:45

技术沙龙 | 6月30日与多位专家探讨技术高速发展下如何应对运维新挑战!


小结

本章对如何分析程序的复杂性给出一些提示。遗憾的是, 它并不是完善的分析指南。简单的程序通常给出简单的分析, 但是情况也并不总是如此。作为一个例子, 在本书稍后我们将看到一个排序算法(希尔排序, 第7章)和一个保持不相交集的算法(第8章), 它们大约都需要20行程序代码。希尔排序(Shellsort)的分析仍然不完善, 而不相交集算法分析极其困难, 需要许多页错综复杂的计算。不过, 我们在这里遇到的大部分的分析都是简单的, 它们涉及对循环的计数。

一类有趣的分析是下界分析, 我们尚未接触到。在第7章我们将看到这方面的一个例子: 证明任何仅通过使用比较来进行排序的算法在最坏的情形下只需要Ω(N log N)次比较。下界的证明一般是最困难的, 因为它们不只适用求解某个问题的一个算法而是适用求解该问题的一类算法。

在本章结束前, 我们指出此处描述的某些算法在实际生活中的应用。gcd算法和求幂算法应用在密码学中。特别地, 400位数字的数自乘至一个大的幂次(通常为另一个400位数字的数)而在每乘一次后只有低400位左右的数字保留下来。由于这种计算需要处理400位数字的数, 因此效率显然是非常重要的。求幂运算的直接相乘会需要大约10400次乘法, 而上面描述的算法在最坏情形下只需要大约2600次乘法。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:342347198

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Windows Server 2003网络管理员完全手册

本书综合介绍了微软的Windows Server 2003操作系统和微软其他常用应用软件提供的服务,同时融入了作者在Windows网络管理上的多年实际应用经...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊