我有一个值列表,这些值增加到最大值然后再次减小(这是观察到的高斯/钟形分布)。
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];
在此特定应用程序中,确定特定索引处的值非常昂贵,因此使用尽可能少的数组查找非常重要。
诸如爬山或二进制搜索的变体之类的解决方案应该可以工作。步骤最少的算法是什么?
长查找时间是由于真实世界的测量设备(时间以秒为单位)。