何谓最优算法?如何证明一个算法是最优的
2018-03-04 10:24
218 查看
最优算法——若算法A在最坏情况(或平均情况)下是最优的,是指:算法A所在的算法类中的其他算法,在最坏(或平均)情况下,执行基本操作的次数不比A更少。
通常的做法是:
(1) 运用确定的基本操作,设计一个有较高效率的算法A,然后分析A,确定:对尺寸为n的任何输入,A至多做的基本操作次数W(n)。
(2) 证明一个定理,以此来说明对于所考虑的算法类中的任何一个算法,都存在一个尺寸为n的输入,使算法在最坏情况下,至少做F(n)次基本操作。
判断比较W(n)和F(n),若W(n)≤F(n),则称A是该算法类中一个在最坏情况下的最优算法,否则A不是最优算法
通常的做法是:
(1) 运用确定的基本操作,设计一个有较高效率的算法A,然后分析A,确定:对尺寸为n的任何输入,A至多做的基本操作次数W(n)。
(2) 证明一个定理,以此来说明对于所考虑的算法类中的任何一个算法,都存在一个尺寸为n的输入,使算法在最坏情况下,至少做F(n)次基本操作。
判断比较W(n)和F(n),若W(n)≤F(n),则称A是该算法类中一个在最坏情况下的最优算法,否则A不是最优算法
相关文章推荐
- 深入浅出SPARSE之【Chapter 2】 Uniqueness and Uncertainty(如何证明一个解是不是全局最优的稀疏解)
- 【算法】如何将一个文件分割成多份(C,Java语言实现)
- 如何实现一个不规则排列的图片布局算法
- 如何实现一个 Virtual DOM 算法
- 用最优的算法求出一个int类型数组中的第二大值
- 如何精确计算出一个算法的CPU运行时间
- 一步一步写算法(如何判断一个素数和一段素数)
- 一个最优的算法
- 如何证明一个数能否被7整除的判定方法
- 大趋势:如何用一个生活场景证明你懂O2O?
- 深度剖析:如何实现一个 Virtual DOM 算法
- 如何实现一个抽奖的算法
- 如何实现一个2048-AI - 算法分析(转)
- 如何评价一个伪随机数生成算法的优劣
- 漫谈算法(一)如何证明贪心算法是最优 using exchange argument
- 算法-Java中如何把两个数组合并为一个
- 如何设计一个高效算法从N个正整数中,随机选取n个不同的随机数 n<=N
- 算法:如何判断平面上的四个点是不是组成一个矩形
- 大规模地形渲染--如何评价一个算法的优劣
- 如何写一个简单的手写识别算法?