作用:
渐进最优是用以评价算法的效率
定义:
如果已经证实一个问题需要使用Ω(f(n))的资源来解决,而某个算法用O(f(n))的资源来解决这个问题,则该算法就是渐进最优的。
解释:
(1) O符号表示函数在增长到一定程度时总小于一个特定函数的常数倍,大Ω符号则表示总大于。
(2) 用数学语言描述即是:
的含义为:
若存在 使得:对于所有.
(3) 大Ω符号与大O符号正好相反,即:
渐进最优的例子包括数据结构动态数组[1],能够在常数时间内索引,但性能在多数机器上不如普通数组的索引。另外,在所有基于比较的排序算法中,归并排序和堆排序是渐进最优的,说到渐进这些算法是依赖于n的,并且忽略常数因子,这些算法随n的递增趋于最优。所以在基于比较的排序算法中,它们都是渐进最优的,它们只比较较少的次数,它们的运行时间主要受比较次数的影响,都是O(nlgn)。