美文网首页学习笔记
算法导论第2.1章 - 算法基础 (伪代码和循环不变式)

算法导论第2.1章 - 算法基础 (伪代码和循环不变式)

作者: 彩虹小星星 | 来源:发表于2021-09-06 22:19 被阅读0次

伪代码

什么是伪代码?
本书用伪代码来书写程序,使用清晰简洁的方式来说明给定的算法。类似我们常用的程序语言。
伪代码的约定

  • 书写上的”缩进”表示程序中的分程序(程序块)结构。
  • 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”都是具有短路能力。

循环不变式

用途:帮助我们理解算法的正确性
方法:证明三条性质

  • 初始化:循环第一次之前,它为真 (注意,关键在于第一次循环之前,而不是指第一次循环)
  • 保持:如果循环的某次迭代之前它为真,那么下次迭代之前它仍为真
  • 终止:当循环结束时,不变式给了我们一个有用的性质

相关文章

  • 算法导论第2.1章 - 算法基础 (伪代码和循环不变式)

    伪代码 什么是伪代码?本书用伪代码来书写程序,使用清晰简洁的方式来说明给定的算法。类似我们常用的程序语言。伪代码的...

  • 算法导论-归并排序

    1.伪代码 MERGE算法图示 2.Python代码 result: 循环不变性对于归并算法 初始化: 在循环之前...

  • 快排【算法导论】

    注:学习算法导论,按照标准伪代码理解翻译为java实现,如有兴趣理解整个过程的细节,建议阅读《算法导论》第7章:快...

  • 《算法导论》-- 循环不变式

    1 初始化 循环的第一次迭代之前,它为真; 2 保持 如果循环的某次迭代之前它为真,那么下次迭代之前它仍然为真; ...

  • 插入排序【算法导论】

    注:学习算法导论,按照标准伪代码理解翻译为java实现,如有兴趣理解整个过程的细节,建议阅读《算法导论》第二章:2...

  • 归并排序【算法导论】

    注:学习算法导论,按照标准伪代码理解翻译为java实现,如有兴趣理解整个过程的细节,建议阅读《算法导论》第二章:2...

  • 算法导论-插入排序

    1.伪代码 算法流程图示 2.Python代码 result: 循环不变性: 初始化: 循环的第一次迭代之前,他为...

  • 算法与数据结构

    数据结构 数据结构与算法分析_Java语言描述(第2版) 算法 计算机算法基础算法导论编程之法_面试和算法心得 c...

  • #算法与数据结构书籍

    数据结构 数据结构与算法分析_Java语言描述(第2版) 算法 计算机算法基础算法导论编程之法_面试和算法心得 c...

  • 算法学习第一天

    第二章:算法入门 1、插入排序:分析输入输出 伪代码(一些约定写法) 可以用自己熟悉的语言去完成 2、循环不变式:...

网友评论

    本文标题:算法导论第2.1章 - 算法基础 (伪代码和循环不变式)

    本文链接:https://www.haomeiwen.com/subject/ezmywltx.html