Introduction to Algorithms, Third Edition HD PDF

This article along with all titles and tags are the original content of AppNee. All rights reserved. To repost or reproduce, you must add an explicit footnote along with the URL to this article!
Any manual or automated whole-website collecting/crawling behaviors are strictly prohibited.
Any resources shared on AppNee are limited to personal study and research only, any form of commercial behaviors are strictly prohibited. Otherwise, you may receive a variety of copyright complaints and have to deal with them by yourself.
Before using (especially downloading) any resources shared by AppNee, please first go to read our F.A.Q. page more or less. Otherwise, please bear all the consequences by yourself.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Among all the books on algorithms, some are very rigorous, but not comprehensive; others cover a lot of materials, but lack preciseness. Introduction to Algorithms combines rigor and comprehensiveness together, discusses all kinds of algorithms in depth, and focuses on making the design and analysis of these algorithms more acceptable to readers at all levels.

Introduction to Algorithms, a classic work in the field of computerized algorithm, is comparable with Donald Knuth‘s The Art Of Computer Programming. Since its first publication, it has become a worldwide widely-used university textbook and standard reference manual for professionals. It is also a very useful teaching material for both undergraduate’s data structure courses and graduate’s algorithm courses. And it is an essential desk reference or engineering practice manual in the career of most IT professionals.

As a very good introductory book on algorithm design and analysis, Introduction to Algorithms gives a clear and encyclopedic exposition to algorithms. The entire book provides more than 900 exercises and thinking questions, as well as detailed case studies. The content of each chapter is self-contained (the first part introduces effective methods of teaching and learning algorithms, while the second part contains various possibilities and challenges for more professional readers and more curious students), each chapter can be used as independent learning unit; All algorithms are described in English and pseudocode, and can be understood by those with preliminary programming experience; The explanation and interpretation strive to be simple and easy to understand, without losing depth or mathematical rigor.

A warn from AppNee: if you’re a human being (just like me), then do please prepare yourself for this point before starting to read this book: Introduction to Algorithms is such a nerve-wracking, very boring, and difficult masterpiece that only with great perseverance and patience can you stick to the end of this book. Of course, geniuses can ignore this warn! Otherwise, I personally advise you not to waste time on it – because it might make it impossible for you to fall in love with algorithms any more (your enthusiasm and confidence in learning will take a serious hit). Perhaps, just as its author says, he has never seen an undergraduate actually finish his book.

// Table Of Contents //

  • I – Foundations (pg. 2)
    • 1: The Role of Algorithms in Computing (pg. 5)
    • 2: Getting Started (pg. 16)
    • 3: Growth of Functions (pg. 43)
    • 4: Divide-and-Conquer (pg. 65)
    • 5: Probabilistic Analysis and Randomized Algorithms (pg. 114)
  • II – Sorting and Order Statistics (pg. 146)
    • 6: Heapsort (pg. 151)
    • 7: Quicksort (pg. 170)
    • 8: Sorting in Linear Time (pg. 191)
    • 9: Medians and Order Statistics (pg. 213)
  • III – Data Structures (pg. 228)
    • 10: Elementary Data Structures (pg. 232)
    • 11: Hash Tables (pg. 253)
    • 12: Binary Search Trees (pg. 286)
    • 13: Red-Black Trees (pg. 308)
    • 14: Augmenting Data Structures (pg. 339)
  • IV – Advanced Design and Analysis Techniques (pg. 356)
    • 15: Dynamic Programming (pg. 359)
    • 16: Greedy Algorithms (pg. 414)
    • 17: Amortized Analysis (pg. 451)
  • V – Advanced Data Structures (pg. 480)
    • 18: B-Trees (pg. 484)
    • 19: Fibonacci Heaps (pg. 505)
    • 20: van Emde Boas Trees (pg. 531)
    • 21: Data Structures for Disjoint Sets (pg. 561)
  • VI – Graph Algorithms (pg. 586)
    • 22: Elementary Graph Algorithms (pg. 589)
    • 23: Minimum Spanning Trees (pg. 624)
    • 24: Single-Source Shortest Paths (pg. 643)
    • 25: All-Pairs Shortest Paths (pg. 684)
    • 26: Maximum Flow (pg. 708)
  • VII – Selected Topics (pg. 768)
    • 27: Multithreaded Algorithms (pg. 772)
    • 28: Matrix Operations (pg. 813)
    • 29: Linear Programming (pg. 843)
    • 30: Polynomials and the FFT (pg. 898)
    • 31: Number-Theoretic Algorithms (pg. 926)
    • 32: String Matching (pg. 985)
    • 33: Computational Geometry (pg. 1014)
    • 34: NP-Completeness (pg. 1048)
    • 35: Approximation Algorithms (pg. 1106)
  • VIII – Appendix: Mathematical Background (pg. 1142)
    • A: Summations (pg. 1145)
    • B: Sets, Etc. (pg. 1158)
    • C: Counting and Probability (pg. 1183)
    • D: Matrices (pg. 1217)

// Download URLs //

Format Download Size
PDF 5.21 MB


If some download link is missing, and you do need it, just please send an email (along with post link and missing link) to remind us to reupload the missing file for you. And, give us some time to respond.
If there is a password for an archive, it should be "".
Most of the reserved downloads (including the 32-bit version) can be requested to reupload via email.