算法分析

什么是算法?
算法是为为求解一个问题需要遵循的,被清楚地指定的简单指令的集合 —《数据结构与算法分析》
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。—百度百科

对于一个问题,一旦我们决定了适用于解决它的算法,那么最重要的一步是确定该算法需要消耗多要资源,最常见的资源是时间资源和空间资源。

如何估算算法所需的资源?让我们先从某些数学定义开始。

定义:如果存在正常数 c 和 n 使得当 N ≥ \geq n 时 T(N) ≤ \leq cf(N),则记为 T (N) = O( f(N) )。

定义:如果存在正常数 c 和 n 使得当 N ≥ \geq n 时 T(N) ≥ \geq cf(N),则记为 T (N) = Ω \Omega Ω (f(N)) 。

这些定义的目的是在函数之间建立相对的关系。给定两个函数,通常存在一些点,在这些点上一个函数的值小于另一个函数的值。但是类似这样的关系是没有意义的。从上面的两个定义也可以看出,我们关心的是当n无限增长是函数的表现,其实我们是在关系两个函数的增长率。第一个定义即T(N)的增长率小于f(N)的增长率。第二定义即T(N)的增长率大于f(N)的增长率。我们在比较两个算法的效率的时候,一般是考虑当数据的集合无限增大时,算法的表现,因为在数据集合小的时候,两个算法的效率差距不会特别大,即使有差距,也是处于可以被接受的程度。

你可能感兴趣的:(算法)