算法
著名计算机科学家沃思提出了一个公式:
数据结构 + 算法 = 程序
数据结构:对数据的描述
算法:对操作步骤的描述
算法定义
广义的说,未解决一个问题而采取的方法和有限的步骤,就称为“算法”
例如:
将⼤象放⼊冰箱的算法就可以如下描述:
打开冰箱⻔-把⼤象装进去-关闭冰箱⻔
算法特征
有穷性:包含有限的操作步骤,不能⽆限制的执⾏下去
可⾏性:算法中的每⼀条指令必须是切实可执⾏的。
确定性:算法中的每⼀条指令必须有确切的含义,不能产⽣歧义。
算法描述-流程图
案例
要求:对于计算 s=1+2+3+4+5+6+7+8+9+10(累加求和)
⽤流程图表⽰为:
程序的三种基本结构
顺序结构
特点:各操作是按先后顺序执行的,是最简单的一种结构,这个结构是默认的。
其中A和B两个框是顺序执行的。也就是在A框所指定的操作后,必然接着执行B框所指定的操作。
分支结构
分支结构又被称作“条件结构”或者“选择结构”。
特点:根据是否满足给定条件而从两组或者多组操作中选择一种进行执行。
⽆论P条件是否成⽴,只能执⾏A操作或者B操作中的⼀个。
⽆论执⾏完哪⼀个分⽀后,就结束了
分支结构又被分为:单分支、双分支、多分支
循环结构
又被称之为“重复结构”。即在一定条件下,反复执行某一部分的操作,有两种类型:
当型循环
执⾏过程:
当给定条件P成⽴时,执⾏S操作,然后再判断P条件是否成⽴,如果仍成⽴,再执⾏S操作,然后再判断…,如此反复,直到某⼀次P条件不成⽴为⽌,此时不再执⾏S,结束循环。
特点:
先判断,后执⾏,S有可能⼀次也不执⾏。(while,for)
直到型循环
执⾏过程:
执⾏S操作,然后判断条件P是否成⽴,如果成⽴,再执⾏S操作,然后再判断,……,如此反复,直到某⼀次P条件不成⽴不再执⾏S,结束循环。
特点:
先执⾏,后判断,S最少要执⾏⼀次。(do…while)