26

I've finished most of the material in Cormen's Intro to Algorithms book and I am looking for an algorithms book that covers material beyond Corman's book. Are there any recommendations?

NOTE: I asked this on stackoverflow but wasn't all too happy with the answer.

NOTE: Looking at most of the comments I think ideally I would like to find a book that would cover the material of the the 787 course in this course description.

Raphael
  • 73,212
  • 30
  • 182
  • 400
Eugene
  • 371
  • 1
  • 3
  • 6

4 Answers4

18

As others have noted, books about (advanced) algorithms are best selected by topic. A good but heavy-weight general reference with rigorous analysis is probably The Art of Computer Programming by Knuth.

As for analysis techniques, you may be interested in An Introduction to the Analysis of Algorithms by Sedgewick and Flajolet, and Algorithmic Combinatorics by Flajolet and Sedgewick for more theory in the same direction.

For approaches on tackling hard problems, see Algorithmics for Hard Problems by Hromkovič.

Raphael
  • 73,212
  • 30
  • 182
  • 400
11
I am looking for an algorithms book that covers material beyond Corman's book.

This can be answered in numerous different ways, depending on what you want "beyond". I would recommend asking much more specific directions, as you are more likely to get specific answers that are helpful. As for some general guidance though:

  • You may find a handful of general books that explore general algorithmic topics in more depth than Corman, but for the most part, you need to start specialising if the book is going to be significantly more in depth. Otherwise it is likely to be bloated and lacking in usefulness.
  • So, instead look for specific topics. There is plenty of advanced material if you focus on specific topics. Are you intersted in:
    • sorting algorithms?
    • string algorithms?
    • number theoretic algorithms?
    • matrix algorithms?
    • graph algorithms?
    • geometric algorithms?
    • quantum algorithms?
    • stochastic/randomised algorithms?
    • linear programming?
    • models of computation?
    • foundational complexity theory and algorithmics?
  • If you want to understand how to derive your own algorithms, focus on understanding the known data structures used in the problem space you are investgating (so, get good depth of existing knowledge) and look to have a good understanding of complexity theory and models of computation. These will give good intuitive feeling of what is possible for a given problem, and what approaches will likely have better success, even if you have a hard time proving lower bounds formally.

Books like Papadimitriou's several or Arora/Barak on Complexity Theory would be my suggestion for follow up to Corman to understand better what algorithms are possible and build up some intuition, but I would just look to modern overview papers on particular areas and look to graduate and research level books on more specific topics if you want familiarity with the modern level of understanding.

ex0du5
  • 603
  • 3
  • 9
5

Have you looked at Handbook of Theoretical Computer Science

If you want to move beyond imperative algorithms and move into functional programming, take a look at Purely Functional Data Structures. I know the title says data structures but the algorithms in the book may open your eyes to a different way of programming.

EDIT

I took a look at the course description for CS 787, and current classes

It notes

We will mainly use papers from the literature. These will be made available either as handouts or via the web. Several books on algorithms will be put on reserve at Wendt library.

If it were me I would contact the instructor directory. :)

Guy Coder
  • 5,181
  • 2
  • 30
  • 65
-2

The computer algorithms are very complex and hard to understand topic, so there is no best book, i.e. just one book which will explain you everything. You need to read couple of them to get hold of this topic.

here are my 2 cents based upon my 10 years of programming and attending numerous interviews:

  1. Algorithm Design Manual by Steven S. Skiena
  2. Algorithms (http://algs4.cs.princeton.edu/home/) by Sedgwick
  3. Introduction to Algorithms By Thomas Cormen
  4. Algorithms for Interviews by Adnan Aziz
  5. Python Algorithms: Mastering Basic Algorithms in the Python Language
  6. Algorithms Unlocked by Thomas Cormen

Reference:

Kris
  • 1