title: Fast algorithm for finding maximum in a bell-shaped list of values
body: <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>