最优算法——若算法A在最坏情况(或平均情况)下是最优的,是指:算法A所在的算法类中的其他算法,在最坏(或平均)情况下,执行基本操作的次数不比A更少。
通常的做法是:
(1) 运用确定的基本操作,设计一个有较高效率的算法A,然后分析A,确定:对尺寸为n的任何输入,A至多做的基本操作次数W(n)。
(2) 证明一个定理,以此来说明对于所考虑的算法类中的任何一个算法,都存在一个尺寸为n的输入,使算法在最坏情况下,至少做F(n)次基本操作。
判断比较W(n)和F(n),若W(n)≤F(n),则称A是该算法类中一个在最坏情况下的最优算法,否则A不是最优算法