chapter2 算法——程序的灵魂

数据结构:对数据的描述。算法:对操作的描述。

算法+数据结构=程序

2.1 什么是算法

算法:广义上,为解决一个问题而采取的方法和步骤。

计算机算法分为两类,非数值算法和数值算法。

2.2 简单的算法举例

例2.1 1*2*3*…*100

从这个例子里面,给出了新的思路,也就是循环的概念。通过循环能解决这类问题。

例2.2 有50个学生,要求输出成绩在80分以上的学生的学号和成绩

在这个例子里面,出现了判断加循环的思路。而且也把数组最基本的概念穿插在其中。并且这是一个将具体问题抽象化的典型。

例2.3 判断闰年

在这个例子里面,主要把握的是运用判断语句的时候,要掌握好有些问题的逻辑判断的先后顺序。

例2.4 1-1/2+1/3-1/4…-1/100

在这个例子里面,首先要确定的是寻找规律。分子全是1,分母是递增,符号的差异。然后就是从例2.1中运用的算法就行运算。

例2.5 判断素数

由前面4个例子,再来判断这个的时候,发现现在解决的数学问题中,数学的步骤就是算法。

2.3 算法的特性

1)有穷性

2)确定性

3)有零个或多个输入

4)有1个或多个输出

5)有效性

2.4 怎样表示一个算法

表示一个算法,比较常用的就是传统流程图、结构化流程图和伪代码。

我觉得,如果是写程序的话,用结构化流程图写算法比较好。但是如果是给客户讲内容的话,或者写一些其他思路,前期还是用流程图比较好。虽然流程图表示会显复杂。

通过这样几个算法的表示方法,来理解程序化结构化语言,顺序结构,选择结构,循环结构

2.5 结构化程序设计算法

一般来说,结构化设计的程序:

1)自顶而下

2)逐步细化

3)模块化设计

4)结构化编码

学习语言的最终目的不是学习语言,最终还在于使工作更加便捷。所以掌握好算法很关键,有了好的算法,然后再好的语言,这才是在做对的事情。而不是为了学语言而学语言。

原文地址:https://www.cnblogs.com/zhurun/p/4590572.html