title: Optimal Multi-page Navigation
body: <p>I have encountered many web sites and even desktop applications that have a breadcrumb type control to navigate pages of information.</p>
  
  <p>For example, given X pages where the user is currently on page N, SOFU has a bread crumb control that presents page navigation in the form of: </p>
  
  <pre><code>(X[N-1])(X[0])...(X[N-2])(X[N-1])(X[N])(X[N+1])(X[N+2])...(X[X-1])(X[N+1])
  </code></pre>
  
  <p>I have seen all sorts of variants of this control. What I am wondering is there a way to optimize this sort of control so the user can navigate to any page of data in a minimum number of jumps. I know there are obvious answers like allow the user to specify a page number or hand enter a url, but I am thinking of a more academic solution where the alternatives are not available.</p>
  
  <p>I am not very bright and suck at math. Any ideas where to even start without brute forcing a solution?</p>