The Algorithm Design Manual
About the Book
Programming Challenges

The Stony Brook Algorithm Repository

Steven Skiena
Stony Brook University
Dept. of Computer Science

Handbook of Algorithms and Data Structures

The Handbook of Data Structures and Algorithms, by Gonnet and Baeza-Yates, provides a comprehensive reference on fundamental data structures for searching and priority queues, and algorithms for sorting and text searching. The book covers these relatively small number of topics comprehensively, presenting most of the major and minor variations which appear in the literature. Perusing the book makes one aware of the tremendous range of data structures which have been developed, and the intense level of analysis many of them have been subjected to.

For each data structure or algorithm, a brief description is provided along with its asymptotic complexity and an extensive set of references. More distinctively, an implementation in C and/or Pascal is usually provided, along with experimental results comparing the performance of these implementations on a variety of distributions.

The authors have created a very slick WWW site for the book,, containing all the source code as well as the index and table of contents. This entire site has been replicated in the local distribution site, although this copy still contains ftp links to Chile for the algorithm implementations. However, all of these files are also available locally. These files are all copyrighted © Addison-Wesley Publishing Co. Inc. and used with the kind permission of Addison Wesley Longman.

Since many of the elementary data structures and sorting algorithms can be implemented concisely, most of the programs are very short. They are perhaps most useful as models, or as part of an experimental study to compare the performance on different data structures for a particular application.

  • Download Files (local site)
  • Ricardo Baeza-Yates's Homepage
  • Link to Handbook of Algorithms and Data Structures
  • Gaston H. Gonnet's Homepage

    Problem Links

    Dictionaries (5)
    Finite State Machine Minimization (5)
    Arbitrary Precision Arithmetic (5)
    Median and Selection (5)
    Priority Queues (5)
    Searching (5)
    Sorting (5)
    Kd-Trees (3)
    String Matching (3)
    Approximate String Matching (2)
    Range Search (2)
    Suffix Trees and Arrays (2)

    This page last modified on 2008-07-10 .