9
$\begingroup$

I thoroughly enjoyed my algorithms class but I felt that it lacked rigor. Most of the time I was able to intuitively understand why the algorithms presented worked and why they had the time complexity that was presented but I'd like to be able to prove such things. As such, I'd like a book that goes over lots of common algorithms and has a focus on proving the correctness and time complexity of the algorithms. Any good recommendations?

$\endgroup$
8
  • 3
    $\begingroup$ Knuth's books usually have analysis, so look into the art of computer programming. $\endgroup$
    – Pavel
    Commented Mar 11, 2016 at 1:45
  • 2
    $\begingroup$ Welcome to CS.SE! This question is pretty broad: there are lots of algorithm textbooks that have a significant focus on proofs of correctness and time complexity. What research have you already done? What options have you considered, and why did you reject them? (See cs.stackexchange.com/help/how-to-ask.) Also, this site doesn't work well for recommendations, as they're inherently subjective; see our help center. Can you think of any way to edit the question to address these concerns? $\endgroup$
    – D.W.
    Commented Mar 11, 2016 at 1:52
  • 4
    $\begingroup$ I am not sure which book you've used in class, but Introduction to Algorithms by Cormen et al. is considered the most popular textbook for undergraduate and most graduate courses in algorithms. It covers an enormous amount of material, with a large amount of references provided. I don't think you will find a better book on algorithms than this one, unless you are looking for a very specific topic. $\endgroup$ Commented Mar 11, 2016 at 2:21
  • 2
    $\begingroup$ I've also found this post that has other suggestions: cs.stackexchange.com/questions/2495/… $\endgroup$ Commented Mar 11, 2016 at 2:22
  • 2
    $\begingroup$ We don't have a strict policy for list questions, but there is a general dislike. Please note also this and this discussion; you might want to improve your question as to avoid the problems explained there. If you are not sure how to improve your question maybe we can help you in Computer Science Chat? $\endgroup$
    – Raphael
    Commented Mar 11, 2016 at 7:16

1 Answer 1

5
$\begingroup$

Note: please edit this answer and add to it, do not create new answers

Rigorous books:

The Art of Computer Programming by Knuth

A Discipline of Programming by Dijkstra

Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein

Algorithms by Sedgewick and Wayne

Dr Dobb's Essential Books on Algorithms and Data Structures
This also includes introduction to algorithms

Algorithms + Data Structures = Programs by Wirth and its followup:
Algorithms and Data Structures

The Science of Programming by Gries and
A Logical Approach to Discrete Math by the same author

Algorithms on Strings, Trees and Sequences by Gusfield

Concrete Mathematics: A Foundation for Computer Science by Graham, Knuth, and Patashnik

The Theory of Parsing, Translation, and Compiling (part I and II) by Aho and Ullman

The Design and Analysis of Computer Algorithms by Aho, Hopcroft, and Ullman

Introduction to Automata Theory, Languages and Computation by Hopcroft and Ullman

Obviously the list can be extended quite a bit.
Note that as the field of computer science has expanded, books are unable to keep up and thus you'll have to turn to research papers.

$\endgroup$
1
  • $\begingroup$ At least my version of Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein is not rigorous when defining asymptotic notations, math.stackexchange.com/questions/2536528/… It tries to define $\Theta$ notation as a set but then some weird way adds a set plus a polynomial like $e^x=1+x+\theta (x^2)$ $\endgroup$ Commented Nov 28, 2017 at 19:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.