算法的表示方法

  • 格式:doc
  • 大小:61.00 KB
  • 文档页数:4

下载文档原格式

  / 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

算法的表示方法

算法的常用表示方法有如下三种:

1、使用自然语言描述算法

2、使用流程图描述算法

3、使用伪代码描述算法

我们来看怎样使用这3种不同的表示方法去描述解决问题的过程,以求解sum=1+2+3 +4+5……+(n-1)+n为例。

第1种:使用自然语言描述从1开始的连续n个自然数求和的算法

①确定一个n的值;

②假设等号右边的算式项中的初始值i为1;

③假设sum的初始值为0;

④如果i≤n时,执行⑤,否则转出执行⑧;

⑤计算sum加上i的值后,重新赋值给sum;

⑥计算i加1,然后将值重新赋值给i;

⑦转去执行④;

⑧输出sum 的值,算法结束。

从上面的这个描述的求解过程中,我们不难发现,使用自然语言描述算法的方法虽然比较容易掌握,但是存在着很大的缺陷。例如,当算法中含有多分支或循环操作时很难表述清楚。另外,使用自然语言描述算法还很容易造成歧义(称之为二义性),譬如有这样一句话——“武松打死老虎”,我们既可以理解为“武松/打死老虎”,又可以理解为“武松/打/死老虎”。自然语言中的语气和停顿不同,就可能使他人对相同的一句话产生不同的理解。又如“你输他赢”这句话,使用不同的语气说,可以产生3种截然不同的意思,同学们不妨试试看。为了解决自然语言描述算法中存在着可能的二义性,我们提出了第2种描述算法的方法——流程图。

第2种:使用流程图描述从1开始的连续n个自然数求和的算法

从上面的这个算法流程图中,可以比较清晰的看出求解问题的执行过程。在进一步学习使用流程图描述算法之前,有必要对流程图中的一些常用符号做一个解释。

流程图的缺点是在使用标准中没有规定流程线的用法,因为流程线能够转移、指出流程控制方向,即算法中操作步骤的执行次序。在早期的程序设计中,曾经由于滥用流程线的转移而导致了可怕的“软件危机”,震动了整个软件业,并展开了关于“转移”用法的大讨论,从而产生了计算机科学的一个新的分支学科——程序设计方法。

无论是使用自然语言还是使用流程图描述算法,仅仅是表述了编程者解决问题的一种思路,都无法被计算机直接接受并进行操作。由此我们引进了第三种非常接近于计算机编程语言的算法描述方法——伪代码。

第3种:使用伪代码描述从1开始的连续n个自然数求和的算法

1) 算法开始;

2) 输入n 的值;

3) i ← 1;/* 为变量i 赋初值*/

4) sum ← 0;/*为变量sum 赋初值*/

5) do while i<=n /*当变量i <=n 时,执行下面的循环体语句*/

6) { sum ← sum + i;

7) i ← i + 1;}

8) 输出sum 的值;

9) 算法结束;

伪代码是一种用来书写程序或描述算法时使用的非正式、透明的表述方法。它并非是一种编程语言,这种方法针对的是一台虚拟的计算机。

伪代码通常采用自然语言、数学公式和符号来描述算法的操作步骤,同时采用计算机高级语言(如C、Pascal、VB、C++、Java等)的控制结构来描述算法步骤的执行