Algorithm for efficiently sorting large lists based on user preference
"Being more interesting" is not a transitive property. I can simultaneously find book A more interesting than B, book B more interesting than C, and book C more interesting than A. (On top of that, whether A is more interesting than B might also depend on when you ask me). 

I wouldn't use a yes/no decision but let's say a range from -10 to +10, which allows the user to say that a book is much more interesting or just a tiny little bit more interesting than another boo. 

I wouldn't modify ranks after each user comparison of two books, but remember all the rankings, and then each time give all the books a ranking, and find one that minimises the difference between the ranking and the user comparisons. 

There's probably a good algorithm to do so. A not very good algorithm: Start ranking all books with an "interestingness" of zero. For each set of rankings we can calculate the error: For each user comparison between books A and B, calculate rating (A vs. B) minus (ranking A - ranking B), sum the squares of these. 

Pick a book at random and change its ranking to minimise the error while leaving all other rankings unchanged. Repeat until you can't manage to improve it anymore.