Fast algorithm for finding maximum in a bell-shaped list of values
<p>I have a list of values that is increasing to a maximum and then decreasing again (it is an observed gaussian/bell-shaped distribution).</p>

<pre><code>values = [0, 4, 5, 15, 30, 20, 10, 5, 0];
</code></pre>

<p>But the distribution can also be shifted:</p>

<pre><code>values = [0, 0, 0, 1, 2, 3, 8, 15, 30];
</code></pre>

<p>Or similarly:</p>

<pre><code>values = [30, 20, 5, 2, 1, 1, 0, 0, 0];
</code></pre>

<p>Determining a value at a specific index is very costly in this specific application, so it is important to use the least possible amount of array lookups.</p>

<p>Solutions such as <a href="https://en.wikipedia.org/wiki/Hill_climbing" rel="nofollow noreferrer">hill climbing</a> or a variant of <a href="https://en.wikipedia.org/wiki/Binary_search_algorithm" rel="nofollow noreferrer">binary search</a> should work. What is the algorithm with the least possible steps?</p>

<p><em>The long lookup-time is due to a real-world measuring device (time in order of seconds).</em></p>