解决大问题的一种方法是把它分解成许多小问题理想情况下这些小问题可以很容
易地被解决然后再把它们合在一起就可以解决大问题了如果新分割的小问题解决起
来还是太大就把它分割得再小一些重复整个过程直到能够解决每个小问题这个策略
就是分而治之divide and conquer 和逐步求精stepwise refinement
书店问题可以分解成四个子问题或任务:
1 读销售文件
2 根据书名和出版社计算销售量
3 以出版社名称对书名进行排序
4 输出结果
我们知道怎样解决第1 2 和4 个子问题因此它们不需要进一步分解但是第3 个子
问题解决起来还是有些大所以对这个子问题重复我们的做法继续分解
3a 按出版社排序
3b 对每个出版社的书按书名排序
3c 在每个出版社的组中比较相邻的书名如果两者匹配增加第一个的数量删除
第二个
作者的算法思想,一定要细细体会。
编译C++程序时编译器自动定义了一个预处理器名字__cplusplus
在编译标准C 时编译器将自动定义名字__STDC__
__LINE__记录文件已经被编译的行数
__FILE__包含正在被编译的文件的名字
被编译文件的编译时间__TIME__ 和日期__DATE__
C中的断言:
#include <assert.h>
assert( filename != 0 );