一个程序主要包括以下两个方面的信息。

(1)对数据的描述。在程序中要指定用到哪些数据以及这些数据的类型和数据的组织形式。这就是数据结构。

(2)对操作的描述。即要求计算机进行操作的步骤,也就是算法(algorithm)。

数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。

算法+数据结构=程序

算法是灵魂,数据结构是加工对象,语言是工具,编程则需要采用合适的方法。

一、什么是算法

广义地说,为解决一个问题而采用的方法和步骤,就称为“算法”

计算机算法可以分为两大类别:数值运算算法和非数值运算算法。

(1)数值运算的目的是楸树值解,例如求方程的根、求一个函数的定积分等。

(2)非数值运算包括的面十分广泛,最常见的是用于事物管理领域,例如对一批职工姓名排序、图书检索、人事管理和行车调度管理等。

二、算法的特性

为了能编写程序,必须学会设计算法。而不是任意写出的一些执行步骤就构成一个算法。一个有效的算法应该具有以下特点:

(1)有穷性

  一个算法应包含有限的操作步骤,而不能是无限的。

(2)确定性

  算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的。

(3)有零个或多个输入

  所谓输入是指在执行算法时需要从外界取得必要的信息。

(4)有一个或多个输出

  算法的目的是为了求解,“解”就是输出。

(5)有效性

  算法中的每一个步骤都应当能有效执行,并得到确定的结果。

三、怎样表示一个算法

1、用自然语言表示算法

2、用流程图表示算法

3、三种基本结构

(1)顺序结构

(2)选择结构

(3)循环结构

  当型(while型)循环结构

  直到型(until型)循环结构

三种结构特点:

(1)只有一个入口。

(2)只有一个出口。

(3)结构内的每一部分都有机会被执行到。

(4)结构内不存在“死循环”

4、用N-S流程图表示算法

5、用伪代码表示算法

6、用计算机语言表示算法

转载于:https://www.cnblogs.com/happyfei/p/9726759.html

第二章 算法——程序的灵魂相关推荐

  1. 《C语言程序设计》(谭浩强第五版) 第2章 算法——程序的灵魂

    <C语言程序设计>(谭浩强第五版) 第2章 算法--程序的灵魂 习题解析与答案 你也可以上程序咖(https://meta.chengxuka.com),打开大学幕题板块,不但有答案,讲解 ...

  2. 第二章:算法——程序的灵魂

    第二章:算法--程序的灵魂 2.1 程序 = 算法 + 数据结构 一个程序主要包括以下两方面的信息: 对数据的描述.在程序中指定用到哪些数据,以及这些数据的类型和数据的组织形式.这就是数据结构. 对操 ...

  3. c语言程序设计 算法,C语言程序设计第二章算法

    <C语言程序设计第二章算法>由会员分享,可在线阅读,更多相关<C语言程序设计第二章算法(38页珍藏版)>请在人人文库网上搜索. 1.C程序设计,主讲人:袁丽,燕大里仁基础教学部 ...

  4. 【编程珠玑】读书笔记 第二章 算法

    2013-07-11 22:00:28 第二章 算法 本章围绕三个问题进行算法讨论,包括元素的查找.字符串的旋转.以及变位词的查找. 下面给出了实现代码.以及测试结果. 问题一 查找不存在的元素 思路 ...

  5. c语言运行时更入下一行,C语言高级语言程序设计(一)_第二章 C程序设计基础(二).ppt...

    C语言高级语言程序设计(一)_第二章 C程序设计基础(二) * 问a,b能否交换?不能.示例 传值调用 如何改变参数的值?在后续章节中介绍 下:传值 * 传值的好处 下:问题3.2 * * * 使用范 ...

  6. 【趣学算法】第二章 算法之美(下)

    14天阅读挑战赛 [趣学算法]第二章 算法之美(下) 1. 一棋盘的麦子 1.1 题目描述 1.2 题目解析 1.3 爆炸增量函数 称上面的函数(1.2中的第一个函数)为爆炸增量函数. 爆炸函数也就是 ...

  7. 微信小程序零基础入门_第二章 小程序框架_逻辑层

    第二章 小程序框架_逻辑层 2.1 逻辑层 小程序开发框架的逻辑层是基于JavaScript进行编写和实现的.在开发过程中写的所有代码,最终都被整合成一份JavaScript,在小程序启动的时候开始执 ...

  8. 我眼中的算法导论 | 第一章——算法在计算中的作用、第二章——算法基础

    一个小白的算法学习之路.读<算法导论>第一天.本文仅作为学习的心得记录. 算法(Algorithm) 对于一个程序员来说,无论资历深浅,对算法一词的含义一定会或多或少有自己的体会,在< ...

  9. 读书笔记-《大话数据结构》第二章算法

    2.3两种算法的比较 #include <iostream> #if 0 //需要运行 100次 int main() {int i,sum=0,n=100;for(i=1;i<=n ...

  10. python程序格式框架的描述_python 程序语言设计(嵩天)-学习笔记(第二章python 程序实例解析)...

    第 2 章 python 程序实例解析 学习目标: 掌握解决计算问题的一般方法. 掌握python语言的基本语法,包括缩进.变量.命名等. 掌握python语言绘制图形的一般方法. 了解python标 ...

最新文章

  1. 最新OPhone 开发官网
  2. linux c进程和线程脑图,进程和线程
  3. [C# 网络编程系列]专题十二:实现一个简单的FTP服务器
  4. HTML5清除2个div标签的空白,DIV标签里面IMG图片下方留有空白怎么办
  5. STM32----摸石头过河系列(八)
  6. java群发邮件_161013、java实现邮件群发带附件
  7. SQL Server-【知识与实战I】条件查询、比较运算符查询、模糊查询、枚举查询、范围查询、空值查询、多重条件查询
  8. 苹果Mac侧边栏笔记工具:​​​​​​​​SideNotes
  9. javascript学习资料汇集
  10. java ip范围_Java判断IP是否在指定范围
  11. 固高运动控制卡教程_基于固高运动控制卡的关节阻抗控制设计
  12. JAVA超市综合管理信息区块链系统毕设论文
  13. 完成一个个人博客,博客头像可上传本地图片;部分图片实现点击看大图功能
  14. html css表格制作,CSS 表格(Table)
  15. 家庭居室装修需做哪些项目
  16. Excel文档误删的4种恢复方法,1秒就可以还原所有内容,你用过吗
  17. MAC VMware Fusion 克隆虚拟机
  18. C语言练习题,大小写字母转换,ASC码的输出
  19. 高级编程语言的发展历程(机器语言、汇编语言、高级语言)
  20. 预览pdf时,中文乱码

热门文章

  1. 怎么用追 MM 来理解 23 种设计模式?
  2. Google 出品的 Java 编码规范和编程指南,权威又科学,强烈推荐
  3. 程序员该如何选择工作以及如何做好职业规划?
  4. 如何优雅的在手机上进行Python编程
  5. 阿里巴巴 CTO 首次分享技术战略
  6. 想要如何入侵Linux服务器?这几个命令够用了
  7. 推荐一些不错的公众号【三】
  8. Android Studio Tips -- 提取方法
  9. 【WEB基础】HTML CSS 基础入门(2)选取工具:VS2019安装使用
  10. 【转】Git代码行统计命令集