摘要:
本章通过一个实例,展示了算法设计艺术,展示了一些算法设计的常用技术。
问题描述:
输入是具有n个浮点数的向量x,求输入向量的任何连续子向量中的最大和。
下面给出三种实现方法的代码,以及测试结果。 阅读全文
摘要:
本章主要讲解粗略估算、以及如何进行粗略估算。
对于大多数程序员而言,可能觉得粗略估算与编程没有什么关系,本章给出了一些简单的例子,说明粗略估算可以帮助快速估计程序的性能,验证程序的正确性。
自己在编程中基本没有用到过粗略估算,所以对于粗略估算的作用还是理解不深,希望以后在应用中慢慢提高吧。 阅读全文
摘要:
第六章主要从理论上分析了提高程序性能的几个设计层面,包括:
问题定义:狼嚎的问题定义可以避免用户对问题需求的过高估计;
算法和数据结构:通过数据结构以及算法,改进性能,这也是使用较多的方法;
算法调优,不太明白此处的算法调优的含义,与算法与数据结构上的改进有何不同???;
数据结构重组,与上同,具体指的是???;
代码调优,指的是通过代码的调整(应该指的是从代码结构、编程语言上改进),书中给出了一个使用汇编语言重写函数,获得了2.5倍加速的例子;
硬件,更快的硬件可以提高系统的性能。 阅读全文
摘要:
本章主要讨论如何根据伪代码编写程序,并用脚手架测试程序的正确性。
作者使用脚手架这个名词,刚开始看,真看不懂,估计是语言习惯的问题,看完这一章,才大致明白就是测试代码所搭建的程序。
书中的脚手架主要是采用assert进行测试,自己觉得很不习惯。
下面是自己写的二分搜索的递归以及非递归实现,并附上测试结果。 阅读全文
摘要:
通过对二分搜索法的实例分析,展示了程序验证的的诸多优势:问题很重要,需要认真地编写代码;程序的开发需要遵循验证思想;可以使用一般性的工具进行程序的正确性分析。 阅读全文
摘要:
本章集中讨论了数据结构对软件的一个贡献:将大程序缩减为小程序。数据结构还具有其他许多的正面作用,包括节省时间和空间、提高可移植性核可维护性。 阅读全文