我有一個值增加到最大值然後再減少值的列表(它是一個觀察到的高斯/鐘形分佈)。用於在鐘形值列表中查找最大值的快速算法
values = [0, 4, 5, 15, 30, 20, 10, 5, 0];
但分佈也可以轉移:
values = [0, 0, 0, 1, 2, 3, 8, 15, 30];
或類似的:
values = [30, 20, 5, 2, 1, 1, 0, 0, 0];
在一個特定的指標判定值是在這個特定的應用程序非常昂貴,所以它是使用盡可能少的數組查找很重要。
解決方案,如hill climbing或binary search的變種應該工作。什麼是儘可能少的步驟的算法?
很長的查找時間是由於真實世界的測量設備(時間以秒爲單位)。
數組數據結構的用法很重要嗎? – LmTinyToon
不是,它也可以是一個未知的函數'f(x)',對於一個給定的'x',測量一個值。這與'x'的輸入數組離散值和輸出數組的結果相似。你爲什麼要問? – Yeti
我的想法是使用二叉搜索樹。這樣根總是最大的。它可以o優化最大搜索。 – LmTinyToon