数据结构:对数据的描述。算法:对操作的描述。
算法+数据结构=程序
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)结构化编码
学习语言的最终目的不是学习语言,最终还在于使工作更加便捷。所以掌握好算法很关键,有了好的算法,然后再好的语言,这才是在做对的事情。而不是为了学语言而学语言。