C/C++常用算法手册(第3版)
上QQ阅读APP看书,第一时间看更新

1.3 算法的分类

算法是一门古老而又庞大的学科,随着历史的发展,演化出多种多样的算法。按照不同的应用和特性,算法可以分为不同的类别。

1.按照应用来分类

按照算法的应用领域,也就是解决的问题,算法可以分为基本算法、数据结构相关的算法、几何算法、图论算法、规划算法、数值分析算法、加密/解密算法、排序算法、查找算法、并行算法和数论算法等。

2.按照确定性来分类

按照算法结果的确定性来分类,可以分为确定性算法和非确定性算法。

确定性算法:这类算法在有限的时间内完成计算,且得到的结果是唯一的,经常取决于输入值。

非确定性算法:这类算法在有限的时间内完成计算,但是得到的结果往往不是唯一的,也就是存在多值性。

3.按照算法的思路来分类

按照算法的思路来分类,算法可以分为递推算法、递归算法、穷举算法、贪婪算法、分治算法、动态规划算法和迭代算法等。