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?
-
3Knuth's books usually have analysis, so look into the art of computer programming. – Pavel Mar 11 '16 at 01:45
-
2Welcome 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 http://cs.stackexchange.com/help/how-to-ask.) Also, this site doesn't work well for recommendations, as they're inherently subjective; see our [help/dont-ask]. Can you think of any way to edit the question to address these concerns? – D.W. Mar 11 '16 at 01:52
-
@D.W. I do agree that the question is broad in the sense that there may exist many correct answers. However, you mention that "there are lots of algorithms textbooks that have significant focus on proofs of correctness and time complexity", if this is the case then perhaps you could suggest one? This would clearly be an appropriate and concrete answer to the question. Also, if questions like this are discouraged then the books tag should just be done away with as it is the exact reason that the tag exists. – Budge Mar 11 '16 at 02:00
-
4I 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. – user340082710 Mar 11 '16 at 02:21
-
2I've also found this post that has other suggestions: https://cs.stackexchange.com/questions/2495/book-for-algorithms-beyond-cormen?rq=1 – user340082710 Mar 11 '16 at 02:22
-
2We 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 [chat]? – Raphael Mar 11 '16 at 07:16
-
1@Raphael, your first link is a post from stack overflow so it isn't necessarily relevant which you actually point out in your second link. Additionally, the response to the question you posted in your second link specifically mentions book suggestions as an appropriate list question. Also, my post has been upvoted and, therefore, seems of general interest to the community. – Budge Mar 11 '16 at 12:21
-
@Budge "we" refers to the Stack Exchange community as a whole. And, honestly, the mods have a pretty good idea of what is and is not relevant. – David Richerby Mar 11 '16 at 17:50
1 Answers
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.
- 3,469
- 1
- 18
- 26
- 1,070
- 9
- 27
-
At least my version of Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein is not rigorous when defining asymptotic notations, https://math.stackexchange.com/questions/2536528/how-to-define-and-use-rigorously-the-asymptotic-notations 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)$ – user2219896 Nov 28 '17 at 19:28