第2章 算法——程序的灵魂
小常识
1.数据结构:在程序中指定要用到某种类型的数据和数据的组织形式。
2.算法:要求计算机为解决某个问题而进行操作的方法和步骤。
3.算法+数据结构=程序
4.算法分类
4.1.数值运算算法
4.2.非数值运算算法
结构算法由顺序、选择、循环等基本结构按照顺序构成,在基本结构中不存在向前或向后的跳转,流程的控制存在一个基本范围内。
算法特点:结构算法易于编写,可读性高,易于修改和维护,提高程序的可靠性,保障了质量。
非结构算法难以理解,其可靠性和可维护性难以保证。
基本算法结构特点
1.顺序结构:一种线性的、有序的结构,依次执行各语句模块。
2.选择结构:根据条件是否成立选择程序的执行通路。
3.循环结构:重复执行一个或几个模块,直到满足某一条件位置。
重新设计基本结构满足条件:
1.只有一个入口和出口;
2.结构内每一部分都可能执行到;
3.结构内没有死循环。
例:while/until循环,多分支结构
流程图
结构化程序设计(SP),是进行以模块功能和处理过程设计为主的详细设计原则,主要采用自顶向下,逐步求精的程序设计方法,即首先把一个复杂的大问题分解为若干的小问题,对每个小问题编写出功能上相对独立的程序块(模块)。最后将各程序块进行组装为完整程序。
主要内容:自顶向下,程序设计时先考虑整体,后考虑细节问题处理。
逐步细化:对复杂问题应设计一些子目标后逐步完善。
模块化设计:把程序要解决的一个大目标分解成具体的小目标,每一个小目标成为模块。
结构化编码:编码实现。