伪代码
什么是伪代码?
本书用伪代码来书写程序,使用清晰简洁的方式来说明给定的算法。类似我们常用的程序语言。
伪代码的约定
- 书写上的”缩进”表示程序中的分程序(程序块)结构。
- while,for,repeat-until等循环结构和if-else条件结构与Python相同。退出循环后,循环计数器保持其值。也就是说for j=2 to A.length,循环终止时j=A.length+1
- 符号 “//”表示后面部分是个注释。
- 多重赋值i=j=e是将表达式e的值赋给变量i和j;等价于j=e,再进行赋值i=j。
- 变量(如i,j和key等)是局部给定过程的。
- 数组元素是通过”数组名[下标]”这样的形式来访问的。
- 复合数据一般组织成对象,它们是由属性(attribute)和域(field)所组成的。
- 参数采用按值传递方式:被调用的过程会收到参数的一份副本。
- 布尔运算符”and”和”or”都是具有短路能力。
循环不变式
用途:帮助我们理解算法的正确性
方法:证明三条性质
- 初始化:循环第一次之前,它为真 (注意,关键在于第一次循环之前,而不是指第一次循环)
- 保持:如果循环的某次迭代之前它为真,那么下次迭代之前它仍为真
- 终止:当循环结束时,不变式给了我们一个有用的性质
网友评论