一、算法的概念
对算法最通俗易懂的说法是:解决问题的方法和步骤

一个程序主要包块两个方面的信息:

(1)数据:在程序中要用到那些数据,以及这些数据的类型和数据的组成形式。

(2)算法:解决某个问题所选用的方法,以及用该方法解决问题的步骤。

而算法要解决的不仅仅是“数值计算”问题,更多的是解决“非数值运算问题”;

(1)数值运算: 对于数值运算往往有现成的模型,因为人们对数值运算研究比较深入,算法比较成熟,几乎所用数值运算都可以找到问题解决方法。问题:加减乘除、判断闰年、求方程的根……

(2)非数值运算: 非数值运算的种类繁多,要求各异,难以做到全部都有现成的答案,因此只有一些典型的非数值运算(例如排序算法、查找搜索算法等)有现成的、成熟的算法可供使用。非数值运算最常见的就是用于事务管理领域,如:图书检索、学生电子信息档案、人事管理和行车调查管理……

二、算法的特征
1.有穷性:一个算法必须总是在执行有穷步后结束,且每一步都必须在有穷时间内完成。 一个算法应包括有限的操作步骤,这里的有穷性意思是指“在合理的范围之内”,比如让计算机运算10000年才结束,那该计算就不能算有效的算法,究竟什么算是“合理限度”,由人们的常识和需要判读。

2.确定性:算法中的每一个步骤都应当是确定的,不能是含糊和模棱两可,使算法的执行者或阅读者都能明确其含义及如何执行 。例如“手举过头顶”,这个步骤就是不确定的,没有说明是右手、左手、还是双手举过头顶。

3.有效性(可行性): 算法中每一个步骤都应当能有效地执行,并得到确定的结果。 例如,若b=0,则执行a/b是不能有效执行的,因为分母不能为0。

4.有0个或多个输入:所谓输入是指在执行算法时需要从外界取得必要的信息。 例如,求任意两个整数的最小值,则需要用键盘输入2个整数,然后才能输出最小值。当然,一个算法也可以没有输入,比如直接输出一行信息“Hello world!"。

5.有1个或多个输出:算法的目的就是为了求解,“解”就是输出,无输出的算法没有任何意义。 注意,算法的解,不仅仅是通过运算得到的数值,还可以是文字。

三、算法的表示方式
表示一个算法常用的方法有:自然语言、传统流程图、结构化流程图(N-S流程图)、伪代码、计算机语言等,重点是用计算机语言表示算法。

用计算机语言(C语言等)表示算法必须严格遵循所用的语言的语法规则,在前面写的最简单的程序(Hello world!及详解)文章中就介绍了C语言最简单程序,以及C语言的一些最基本语法规则。
四、结构化程序设计方法

结构化程序设计方法的基本思路:把一个复杂问题过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。

得到结构化的程序一般包括以下4个步骤:
(1)自顶而下
(2)逐步细化

自上而下、逐步细化:将问题求解由抽象逐步具体化的过程。(类似写文章时拟提纲)

(3)模块化设计:将程序模块,分成若干个子模块(一般不超过50行),划分子模块时要注意模块的独立性(每一个模块完成一项功能)
(4)结构化编码:将以设计好的算法用计算机语言来表示(结构化语言:C语言、Visual Basic等)

C语言之算法的概念和特点相关推荐

  1. 什么是算法c语言中,C语言/C++算法基本概念

    分享编程技能.互联网技术.生活感悟.打造干货分享平台,将总结的技术.心得.经验分享给大家,这里不只限于技术!还有职场心得.生活感悟.以及面经. C语言/C加加算法基本概念 1. 算法是什么 算法:顾名 ...

  2. 分水岭算法c语言,分水岭算法的概念及原理

    (转至网络) 分水岭算法的概念及原理 分水岭分割方法,是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值 ...

  3. C语言灵魂——算法!

    程序的灵魂-算法 一个程序应包括: 对数据的描述.在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure). 对操作的描述.即操作步骤,也就是算法(algorithm). ...

  4. 计算机算法的概念教案,《算法的概念》教学设计

    一.教材背景分析 1.教材的地位和作用 <算法的概念>是全日制普通高级中学教科书人教B版必修3第一章<算法初步>的第一节内容,<算法初步>是课程标准的新增内容,它是 ...

  5. 计算机程序概念内涵,算法的概念的教学设计

    <算法的概念的教学设计>由会员分享,可在线阅读,更多相关<算法的概念的教学设计(7页珍藏版)>请在人人文库网上搜索. 1.算法的概念的教学设计杭二中分校 陈海玲一内容和内容解析 ...

  6. c语言 算术平均滤波法_基本C语言滤波算法

    11种软件滤波方法的示例程序 假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad(); 1.限副滤波 /*  A值可根据实际情况调整 value为有效值,new ...

  7. 计算机算法的概念教案,高中信息技术 1.2 算法和算法的描述教案

    <高中信息技术 1.2 算法和算法的描述教案>由会员分享,可在线阅读,更多相关<高中信息技术 1.2 算法和算法的描述教案(6页珍藏版)>请在人人文库网上搜索. 1.1-2节 ...

  8. 列举c语言的算法描述,C语言算法

    在 编程 纳入必修课的趋势下,程序设计或App设计已是大部分学生必须具备的能力.而数据结构及其算法更是用来培养程序设计逻辑的基础理论,也是有志从事IT行业人员既基础又核心的课程. 本书采用丰富的图例来 ...

  9. 计算机算法的概念教案,算法概念的教学

    算法初步是必修内容中唯一新增的章节,要教好它,自己先要接受它.喜欢它,在教学中,算法思想的引入则是重中之重,为了提高学生学习算法的积极性,要更多关注算法的"数学味". 在西方很早就 ...

最新文章

  1. django mysql save_python,django,向mysql更新数据时save()报错不能用
  2. bootstrap-fileinput 添加打印按钮
  3. CTFshow 命令执行 web58
  4. 用两个矩阵的点积计算神经网络的迭代次数 2-8
  5. 给JDK报了一个P4的Bug,结果居然……
  6. Golang的Int8 Int16 Int32 Int64区别
  7. 修车工在生命最后,才知道自己的儿子是如今世界首富!
  8. webrtc服务器janus echotest学习
  9. oracle 9.2.0.1下载,Oracle 9i 从9.2.0.1升级到 9.2.0.6 步骤
  10. java io教程_Java IO教程
  11. hello world_AngularJS Hello World示例
  12. 用函数实现字符串拼接_JDK拍了拍你:字符串拼接一定记得用MessageFormat#format
  13. Mybatis中SqlNode的组合模式
  14. java list stream 去除 null_Stream流的这些操作,你得知道,对你工作有很大帮助
  15. mysql2005安装_安装SQL Server 2005的详细步骤
  16. 管家婆辉煌 经营历程 Date exceeds maximum of 19-12-31 报错解决办法
  17. 如何用python修改安卓和iOS的微信和支付宝步数!
  18. python基础实例 韦玮 pdf_Python程序设计基础实战教程
  19. windows10一右击就转圈圈,假死状态解决了
  20. 威联通NAS备份到百度网盘

热门文章

  1. 科学防雷接地和雷电防护方案
  2. baidu 百度在搞什么啊?
  3. 【STM32项目】老人健康跌倒检测系统实现
  4. JAVA day06:代码作业(封装)
  5. python图案绘制解锁_PythonAppium实现安卓手机图形解锁
  6. css实现日出日落效果
  7. 国际数字文创产业园区助力成都打造文创名城
  8. 2021.1.15——星露谷作物计算器的小改进
  9. pymysql.err.OperationalError: (1054, “Unknown column ‘xxx‘ in ‘where clause‘“)问题解决方法
  10. 为OpenStack量身打造 OVS推出全新OVN项目