博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法描述---伪代码
阅读量:5150 次
发布时间:2019-06-13

本文共 1254 字,大约阅读时间需要 4 分钟。

算法描述

        算法描述是指对设计出的算法,用一种方式进行详细的描述,以便与人交流。描述可以使用自然语言、伪代码,也可使用程序流程图,但描述的结果必须满足算法的五个特征。

使用自然语言描述算法显然很有吸引力,但是自然语言固有的不严密性使得要简单清晰的描述算法变得很困难。因此,使用伪代码来描述算法是一个很好的选择。

 

算法的特征

  1. 输入:一个算法必须有零个或以上输入量。
  2. 输出:一个算法应有一个或以上输出量,输出量是算法计算的结果。
  3. 明确性:算法的描述必须无歧义,以保证算法的实际执行结果是精确地符合要求或期望,通常要求实际运行结果是确定的。
  4. 有限性:依据图灵的定义,一个算法是能够被任何 系统模拟的一串运算,而图灵机器只有有限个状态、有限个输入符号和有限个转移函数(指令)。而一些定义更规定算法必须在有限个步骤内完成任务。
  5. 有效性:又称可行性。能够实现,算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现。

伪代码

伪代码是自然语言和类编程语言组成的混合结构。它比自然语言更精确,描述算法很简洁;同时也可以很容易转换成计算机程序。虽然如此,但计算机科学家们从来就没有对伪代码的形式达成共识,不同作者的教材会设计他们自己的“方言”(伪代码)。幸运的是,这些伪代码都十分相似,任何熟悉一门现代变成语言的人都完全能够理解。

使用伪代码描述算法可以让程序员很容易将算法转换成程序,同时还可以避开不同程序语言的语法差别,如Pascal语言使用“:=”作为赋值,使用“=”作为比较;又如C/C++的赋值使用“=”,而判断相等的比较则是用“==”。

常用的微带关键词含义如下表所示:

伪代码 含义 C/C++语言
缩进 程序块 {}
/ / 行注释 / /
赋值 =
= 比较运算——等于 ==
比较运算——不等于 !=
比较运算——小于或等于 < =
比较运算——大于或等于 >=
for i←1 to n do For循环 for(i=1;i⇐n;i++){}
for i←n downto 1 do For循环 for(i=n;i>=1;i–){}
while i<n do Wihle循环 while(i<n){}
do while i<n Do-While循环 do {} while(i<n)
repeat until i<n Repeat循环
if i<n else If-Else语句 if(i<n){} else {}
return 函数返回值 return
A[0..n-1] 数组定义 int A[n-1]
A[i] 引用数组 A[i]
SubFun() 函数调用 SubFun()

流程图

在计算机应用早期,描述算的主要工具是流程图。使用一系列相连的几何图形来描述算法,几何图形内部包含对算法步骤的描述。实践证明,除了一些非常简单的算法外,这种表示方法使用起来非常不方便。

转载于:https://www.cnblogs.com/WayneZeng/p/9290790.html

你可能感兴趣的文章
python条件判断语句
查看>>
超轻量级的Ajax库——ajax.js
查看>>
《阿里如何实现秒级百万TPS?搜索离线大数据平台大数据平台架构解读》读后感...
查看>>
蓝桥杯 [翻硬币] 贪心
查看>>
css字体不让选中
查看>>
代码抽象三原则
查看>>
SQL Server和My SQL某些T-SQL用法的区别
查看>>
<ZZ>Linux rpm 命令参数使用详解[介绍和应用]
查看>>
装饰器补充知识点_ @functools.wraps(func)
查看>>
用ArrayList的subList方法做分页
查看>>
【深度学习系列】用PaddlePaddle和Tensorflow实现经典CNN网络Vgg
查看>>
这是第二个标题
查看>>
Linux 下 SVN服务器搭建
查看>>
unison实时双向数据同步
查看>>
maven编译错误maven-assembly-plugin:2.2-beta-5:assembly (default-cli) on project
查看>>
暑假集训考试R2 konomi 慕
查看>>
c#Coroutine协程 WebClient异步下载静态资源
查看>>
学习流行的JavaScript框架20120731-[jQuery,Dojo,MooTools]
查看>>
django ORM的外键操作
查看>>
easyui 使用
查看>>