算法是一门古老且庞大的学科,随着历史的发展,演化出多种多样的算法。按照不同的应用和特性,算法可以分为不同的类别。
1.按照应用来分类
按照算法的应用领域,即解决的问题,算法可以分为基本算法、数据结构相关算法、几何算法、图论算法、规划算法、数值分析算法、加密、解密算法、排序算法、查找算法、并行算法和数论算法。
2.按照确定性来分类
按照算法结果的确定性来分类,算法可以分为确定性算法和非确定性算法
确定性算法:这类算法在有限的时间内完成计算,得到的结果是唯一的,且经常取决于输入值。
非确定性算法:这类算法在有限的时间内完成计算,但是得到的结果往往不是唯一的,即存在多值性。
3.按照算法的思路来分类
按照算法的思路来分类,算法可以分为递推算法、穷举算法、递归算法、贪婪算法、分治算法、动态规划算法和迭代算法。