大部分算法都有一个主要参数n,它是影响算法运行时间的主要因素。
现在有一台大型计算机执行冒泡排序,另一台微型计算机执行执行贵并排序,它们的输入都是一个规模为100万的有序数组,假设大型计算机每秒执行1亿条指令,微型计算机执行百万指令,那么它们在执行后,微型计算机会先于大型计算机计算完毕,这就是算法的能力。
再算法分析中使用渐进的数学技巧来表示最坏时间复杂度:表示法、表示法、表示法
表示法(比上不足,比下有余)
定义:如果存在三个正常数、、,对于所有的,有,则记作
例:
证明:
右边的不等式再,时成立;左边不等式在,时成立,那么在,以及时,得证
表示法(最坏时间复杂度)
定义:如果存在两个正常数c,,对于所有的,有,则记作
例:
证明:
不等式在,,时成立,得证。
表示法(最好时间复杂度)
定义:如果存在两个正常数c,,对于所有的,有 , 则记作。
例:
证明:
不等式在,时成立,得证。
从计算时间上可以把算法分成两类:多项式时间算法,指数时间算法。
多项式时间算法常见:
指数时间算法常见: