算法是对特定问题求解步骤的一种描述,是指令的有限序列。

算法特性

  1. 有穷性
  2. 确定性
  3. 可行性
  4. 有输入(零个或多个输入)
  5. 有输出(一个或多个输出)

    算法设计目标

  6. 正确性

  7. 健壮性
  8. 高效性(时间、空间)时间效率通常是我们考虑的首要因素。
  9. 可读性

    算法描述方法

  10. 自然语言

    • 优点:描述简单
    • 缺点:容易产生二义性,转换程序设计语言的代码不方便
  11. 流程图
    • 优点:非常直观
    • 缺点:严密性不如程序设计语言,灵活性不如自然语言,一般只用来描述程序设计语言的语法规则和一些简单的算法
  12. 程序设计语言
    • 优点:可以直接由计算机来执行
    • 缺点:抽象性差、可读性较差
  13. 伪代码(
    • 介于自然语言和程序设计语言之间的一种描述方法,采用某一种程序设计语言的基本语法和操作指令,又结合着自然语言来进行描述
  1. // 伪代码
  2. 算法:ComFactor
  3. 输入:两个自然数mn
  4. 输出:mn的最大公约数
  5. 1.r = m % n
  6. 2.循环直到r等于0:
  7. 2.1 m = n;
  8. 2.2 n = r;
  9. 2.3 r = m % n;
  10. 3.输出n

image.png