1、一个典型的算法一般都江堰市可以从其中抽象出5个特征:
(1)有穷性:简单理解为执行时间有限的
(2)确功性:每一个指或者步骤必须有明确的定义和描述。
(3)输入:输入运算数据对象
(4)输出:输出明确的结果
(5)可行性:步骤必须是可行的,确在有限的时间内完成
2、算法的分类:
(1)按照应用来分类
基本算法、数据结构相关的算法、几何算法、图论算法、规划算法、数值分析算法、加密/解密算法、排序算法、查找算法、并行算法和数论算法等
(2)按照确定性来分类
确定性算法:这算法在有限的时间内完成计算,得到的结果是唯一的,且经常取决于输入值
非确定性算法:这类算法在有限的时间内完成计算,但是得到的结果往往不是唯一的,了就是存在多值性
3、按照算法 的思路来分类
递推算法、递归算法、穷举算法、贪婪算法、分治算法、动态规划算法和迭代算法等。
4、算法的表示:
自然语言表示
流程图表示:
一般采用在种结构:顺序结构、分支结构、循环结构
N-S图表和伪代码表示
5、算法性能评价
时间复杂度:时间复杂度也就是通常所说的算法执行所需要耗费的时间,时间越短,算法越好。注意:算法的时间复杂度还与问题的规模有关.
空间复杂度:空间复杂度是算法程序在计算机中执行所需要消耗的存储空间资源。
6、算法的新进展
(1)并行算法
(2)遗传与进化算法
(3)量子算法