教学要点:
算法的基础知识:
现实生活中,许多事情必须遵循一定的规则,按照固定的顺序执行,不可更改。
—— 生活中的“算法”
对于复杂问题,通常采用“分治策略”解决。
分治策略:对于一个规模为n的问题,若该问题可以容易地解决(规模n较小)则直接解决;否则将其分解为k个规模较小的子问题(子问题缩小到很容易直接求出其解),然后将各子问题的解合并得到原问题的解。
程序 = 数据结构 + 算法
数据结构(Data Structure):计算机存储、组织数据的方式,指互相之间存在一种或多种特定关系的数据元素的集合。
计算机中的算法(Algorithm):为解决一个具体问题而采取的确定、有限、有序、可执行的操作步骤。不同的算法完成同样任务,可能所用的时间、空间或效率不同。
计算机算法分类:
数值算法:解决数值求解问题。
非数值算法:解决需要逻辑推理才能解决的问题。
算法的基本特性:
有穷性:步骤有限,合理的时间内完成;
确定性:步骤确定,无歧义;
有效性:步骤有效执行,能得出确定结果;
允许无输入或有多输入;
肯定有一个或多个输出。
算法的描述:
自然语言:符合自然思维习惯,文字多,可能有歧义,不易转化;
流程图:易于理解,形象直观,转化方便,流程线转向灵活,阅读修改困难;
NS图:无流程线,自顶向下顺序描述,有利于结构化设计;
伪代码:类计算机语言的代码,无格式规范,易于转化。