一、 什么是算法?
定义:算法是模型分析的一组可行的、确定的和有穷的规则。
通俗的讲:算法可以理解为一个完整的解题步骤,由一些基本运算和规定的运算顺序构成,可以解决特定问题的流程。
二、算法的特征
有穷性:算法的指令或者步骤的执行次数是有限的
确切性:每一个指令或步骤都必须有明确的定义和描述
输入性:一个算法有相应的输入条件,用来刻画对象的初始条件
输出性:一个算法有明确的结果输出
可行性:算法的执行步骤必须是可行的,且可以在有限的时间内完成。
三、算法的分类
按照应用分类:
基本算法、数据结构算法、几何算法、图论算法、规划算法、数值分析算法、 加密/解密算法、排序算法、查找算法、并行算法、数论算法
按照确定性分类:
确定性算法: 这类算法在有限的时间内完成计算,得到的结果是惟一的,且经常取决于输入值。
非确定性算法: 这类算法在有限的时间内完成,但是得到的结果不是唯一的,存在多植性。
按照思路分类:
递推算法、递归算法、穷举算法、贪婪算法、分治算法、动态规划算法、迭代算法等等
四、算法与数据结构和程序的关系
数据结构+算法+程序设计语言=程序
五、算法的表示形式
自然