news 2026/6/10 13:06:34

算法描述的5种方法(非常详细)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
算法描述的5种方法(非常详细)

在 C语言中,有 5 种常用的算法描述方法:自然语言、流程图、N-S 图、伪代码和程序设计语言。

1. 自然语言描述算法

自然语言就是我们日常使用的各种语言,可以是汉语、英语、日语等。

用自然语言描述算法的优点是通俗易懂,当算法中的操作步骤都是顺序执行时比较直观、容易理解。缺点是如果算法中包含了判断结构和循环结构,并且操作步骤较多时,就显得不那么直观清晰了。

2. 用流程图描述算法

用流程图描述算法就可以解决上述缺点。所谓流程图(Flow Chart),是指用规定的图形符号来描述算法(见表 1)。

表 1:流程图常用的图形符号
图形符号名称含义

起止框程序的开始或结束

处理框数据的各种处理和运算操作

输入/输出框数据的输入和输出

判断框根据条件的不同,选择不同的操作

连接点转向流程图的他处或从他处转入

流向线程序的执行方向

结构化程序设计方法中规定的三种基本程序流程结构(顺序结构、选择结构和循环结构)都可以用流程图明晰地表达出来(见图 1)。

图 1:用流程图表示的顺序结构、选择(条件分支)结构、循环结构三种流程

3. 用 N-S 图描述算法

虽然用流程图描述的算法条理清晰、通俗易懂,但是在描述大型复杂算法时,流程图的流向线较多,影响了对算法的阅读和理解。因此有两位美国学者提出了一种完全去掉流程方向线的图形描述方法,称为 N-S 图(两人名字的首字母组合)。

N-S 图使用矩形框来表达各种处理步骤和三种基本结构(见图 2),全部算法都写在一个矩形框中。

图 2:用 N-S 图表示的顺序结构、选择(条件分支)结构、循环结构三种流程

图 3 展示了分别用自然语言、流程图和 N-S 图解决同一问题的算法描述。

图 3:分别用自然语言、流程图和 N-S 图描述的算法

4. 用伪代码描述算法

伪代码是用在更简洁的自然语言算法描述中,用程序设计语言的流程控制结构来表示处理步骤的执行流程和方式,用自然语言和各种符号来表示所进行的各种处理及所涉及的数据(见图 4)。它是介于程序代码和自然语言之间的一种算法描述方法。这样描述的算法书写比较紧凑、自由,也比较好理解(尤其在表达选择结构和循环结构时),同时也更有利于算法的编程实现(转化为程序)。

图 4:常见的三种流程结构的伪代码

5. 用程序设计语言来描述算法

算法最终都要通过程序设计语言描述出来(编程实现),并在计算机上执行。程序设计语言也是算法的最终描述形式(见图 5)。无论用何种方法描述算法,都是为了将其更方便的转化为计算机程序。


图 5:用伪代码和程序设计语言(C语言)描述的算法

#include <stdio.h> int main(){ int S=0; int i=0; while(i<100) { i=i+1; S=S+i; } printf("1+2+3+…+100=%d",S); system("pause"); }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 13:05:16

荣耀出征手游攻略(奇迹 MU1.03H 正版)

荣耀出征手游攻略&#xff08;奇迹 MU1.03H 正版&#xff09;荣耀出征由安徽游昕联合忆往游戏运营&#xff0c;正版奇迹 MU1.03H 复刻&#xff0c;1:1 还原勇者大陆、冰风谷等经典地图&#xff0c;五大职业、自由加点、野外打宝、战盟攻城&#xff0c;无 VIP、不卖属性&#xf…

作者头像 李华
网站建设 2026/6/10 13:03:36

告别重复造轮子!一款适配全语言的企业级统一打印中间件(可常驻服务+零代码模板)

前言 在企业信息化、工业工控、多系统集成开发中&#xff0c;打印适配一直是高频痛点&#xff1a;不同开发语言适配繁琐、多打印机难以统一调度、报表模板开发耗时、老旧系统打印改造困难。绝大多数项目都在重复开发打印逻辑&#xff0c;冗余工作量极大。 今天给大家分享一款…

作者头像 李华
网站建设 2026/6/10 12:57:07

【毕业设计】基于springboot+微信小程序的热门游戏商城小程序游戏周边商城小程序(源码+文档+远程调试,全bao定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/10 12:57:04

微信小程序计算机毕设之基于springboot+微信小程序的热门游戏商城小程序(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/10 12:51:46

TMP字体某几个字,突然某名的丢了,怎么修复?

开启 Multi Atlas Textures这是 TMP 官方解决“突然丢字”的标准答案。开启“多图集模式”&#xff08;治本&#xff0c;一劳永逸&#xff09;只要开启了这个&#xff0c;图集满了它会自动开第二张、第三张图&#xff0c;以后再也不会丢字了。选中那个字体资产&#xff08;.ass…

作者头像 李华