我来自这里:Peak finding algorithm
我还在MIT OCW频道观看了youtube video。
根据我的理解,算法是找到一个LOCAL峰值。
该帖子的最高评论称,峰值不一定是全球最大值......但不是全球最大峰值?这种说法不正确吗?
如果我从这个算法开始,则INITIAL中间元素决定找到峰值的方向。另一边的任何峰值(LOCAL或GLOBAL)都将被忽略。
同样在讲座中说,"如果它存在"。那是什么意思?它如何依赖于> =符号?
P.S:指出我错的地方。答案 0 :(得分:3)
该帖子的最高评论称,峰值不一定是全球最大值......但不是全球最大峰值?这种说法不正确吗?
局部最大值不一定是全局最大值,而全局最大值是局部最大值之一。实际上我曾经在一次采访中遇到过这个问题,我的采访者通过画图来帮助我理解这个概念。
请参见此处局部最大值如何也是全局最大值,但还有其他局部峰值不是全局最大值。
如果我从这个算法开始,则INITIAL中间元素决定找到峰值的方向。另一边的任何峰值(LOCAL或GLOBAL)都将被忽略。
这是正确的,此算法仅查找单局部最大值。任何其他人都被忽略了。
如果你想找到本地最大值的所有然后决定哪一个是全局最大值,你必须迭代并查看每个元素,然后变成一个更简单的O(n)
遍历数组。
答案 1 :(得分:0)
该算法不承诺找到最大元素,只是一个峰值,这是一个比其邻居更大的元素,所以:
不是全球最大峰值?这种说法不正确吗?
你是对的,全局最大值是一个峰值,但反过来并不总是正确的。
INITIAL中间元素决定峰值的找到方式
同样,你是对的,但这正是算法所做的,它承诺找到一个峰值,而不是最大值。如果你想要最大值,迭代所有峰值并找到最大值。