Improving Saddleback Search: A Lesson in Algorithm Design

  • Richard S. Bird
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4014)


Over the past twenty-five years or so Saddleback search has been used as an paradigm of how methods of formal program construction can quickly lead to a simple and effective algorithm for searching an ordered table. In this paper we revisit the problem and show that saddleback search is not in fact the best algorithm when one dimension of the table is much smaller than the other. The paper is structured in the form of a classroom discussion involving a teacher and four very clever students.


Algorithm Design Formal Program Binary Search Classroom Discussion Good Algorithm 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Backhouse, R.: Program Construction and Verification. Int. Series in Computer Science. Prentice Hall, Englewood Cliffs (1986)Google Scholar
  2. 2.
    Dijkstra, E.W.: The Saddleback Search. Note EWD-934 (1985), URL:
  3. 3.
    Gries, D.: The Science of Programming. Springer, Heidelberg (1981)zbMATHGoogle Scholar
  4. 4.
    Graham, R.L., Knuth, D.E., Patashnik, O.: Concrete Mathematics. Addison-Wesley, Reading (1989)zbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Richard S. Bird
    • 1
  1. 1.Programming Research GroupOxford UniversityOxfordUK

Personalised recommendations