I have encountered many web sites and even desktop applications that have a breadcrumb type control to navigate pages of information.
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:
(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])
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.
I am not very bright and suck at math. Any ideas where to even start without brute forcing a solution?