1 问题分解
学会将复杂问题分解为若干简单问题。
2 函数的前置条件,后置条件
前置条件:是一条语句,调用函数时该语句给出所要求的条件。若前置条件为真,则执行该函数。
后置条件:是一条语句,当函数调用结束时,该语句将给出哪些条件为真。
编写函数时以注释方式写入,其实就是函数的输入输出。
使用函数assert检查前置条件可以大幅度缩短调试时间,当考虑程序的运行速度时,assert检查可以随时关闭。
3 logN
分析算法复杂度时经常看到。可以证明,以十进制表示法书写整数n时,n中数字的位数近似等于n的以10为底的对数。但它并不总是整数,所以向下取整再加一,即 [logN]+1。
4 大O表示法
3种重要示例:线性型O(n),二次型O(n^2),对数型O(logN)。
5 程序测试
选择恰当的测试数据,应具有以下两个属性:
(1)对于每个输入应该知道正确的程序输出是什么。
(2)测试输入应该尽可能的包含那些可能导致程序出错的数据。
重点考虑测试边界值。
总结于《数据结构与面向对象程序设计——C++版》