算法(Algorithm)是指
解题方案的准确而完整的描述
,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入
,在有限时间内
获得所要求的输出
。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。
优劣
时间复杂度(T(n)=Ο(f(n))
)和空间复杂度(S(n)=O(f(n))
)。
特征
- 有穷性 :步骤有限
- 确切性:每一步有确切的定义
- 输入项
- 输出项
- 可行性:有限时间
实现算法的方法
- 递推法
- 递归法
- 穷举法
- 贪心算法
- 分治法
- 动态规划法
- 迭代法
- 分支界限法
- 回溯法
分类
算法可大致分为基本算法、数据结构的算法、数论与代数算法、计算几何的算法、图论的算法、动态规划以及数值分析、加密算法、排序算法、检索算法、随机化算法、并行算法,厄米变形模型,随机森林算法。
算法可以宏泛的分为三类:
一,有限的,确定性算法 这类算法在有限的一段时间内终止。他们可能要花很长时间来执行指定的任务,但仍将在一定的时间内终止。这类算法得出的结果常取决于输入值。
二,有限的,非确定算法 这类算法在有限的时间内终止。然而,对于一个(或一些)给定的数值,算法的结果并不是唯一的或确定的。
三,无限的算法 是那些由于没有定义终止定义条件,或定义的条件无法由输入的数据满足而不终止运行的算法。通常,无限算法的产生是由于未能确定的定义终止条件。
php在线面试题集:http://cainiaophp.com/
php面试讨论群:536633782
网友评论