程序=算法+数据结构
程序+算法+数据结构+程序设计方法+语言工具+环境
算法
算法概念
算法=解决问题的确定的方法+有限的步骤
算法是对特定问题求解步骤的一种逻辑描述,是规则的有限集合
算法分类
数值运算算法
对数字的求解
非数值运算算法
如信息检索,事务管理,数据处理
算法特征
- 有穷性——》操作步骤有限,会结束操作
- 确定性——》每一步满足具体条件要求,且能产生满足规格要求的结果
- 可行性/有效性——》每一步都可以操作,且得到确定的结果
- 有零个或多个输入——》可以没有输入
- 有一个或多个输出——》算法的目的是输出,没有输出的算法无意义
算法的表示方法
自然语言
流程图
三种基本程序结构
顺序结构
选择结构(也叫分支结构)
循环结构(也叫重复结构)
- 当型循环(先判断后执行)
当满足条件时就执行循环体,否则不执行。
- 直到型循环
先执行循环体直到满足条件时结束
N-S流程图
无流程线,只有一个出口和入口,上下顺序就是执行时的顺序
程序设计典型算法
穷举法(也叫枚举法)
对所提出的问题例举所有可能的情况,并逐一验证
递推法
利用新旧值间的关系,在旧值的基础上推出新值,如此反复直到推算出所需结果。
递归法
将复杂问题逐层分解为简单问题,并对简单问题进行求解,最后再沿着分解的逆过程进行综合。
递归过程必须有一个递归终止的条件(即递归出口)
注:递推: 初始条件——》所需结果
递归: 过程本身——》递归边界
结构化程序设计方法
特点
结构清晰,可读性强,模块化,提高开发效率
步骤
- 分析问题,建立数学模型
- 确定数据结构
- 确定算法,描述算法
- 编制程序,调试程序
- 运行结果
原则
- 自上而下,先整体后细节
- 逐步求精
- 模块化,分解复杂问题
- 限制使用goto语句