首先是为什么会使用渐进来分析算法的效率,由于当问题的规模很小的时候,基本上在任何一台机器上都会以很快的速度计算出来,由于算法是机器无关的,编译器无关的,所以只有在问题规模较大的时候分析算法的效率才显得有意义。渐进就是将问题的规模趋向于无穷大,这样,对于系数,低阶项和常数项都是可以忽略的,因为随着问题规模逐渐趋向于无穷,这些项对于主导项来说,是完全可以忽略的,这样就有了渐进分析算法的五个符号。
基本符号:
1. 大O符号:用于表示最坏的情况下运行时间,比如冒泡排序算法是O(n^2)就是指的最坏情况下运行时间是O(n^2)
定义:给定两正值函数和,定义:
- ,条件为:存在正 实数 和 ,使得对于所有的 ,有
上述的定义表明,当足够大,大过一个特定的时,且存在一个正数,使得不大于,则是的表示。和的关系可以理解为是的一个上界,也可以理解为最终至多增涨的速度与