# Introduction to Algorithms **Repository Path**: kevinzu/IntroductionToAlgorithms ## Basic Information - **Project Name**: Introduction to Algorithms - **Description**: No description available - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-02-22 - **Last Updated**: 2022-02-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Common ============================================================ >

Introduction to Algorithms

## Contents [toc] ## What are algorithms? Informally an alogirthm is a solution to a problem. ## The history of algorithms Before there were computers, there were algorithms. But now that there are computers, there are even more algorithms, and algorithms lie at the heart of computing. ## Why is the study of algorithms worthwhile? * Having a solid base of algorithmic knowledge and technique is one characteristic that separates the truly skilled programmers from the novices. * With modern computing technology, you can accomplish some tasks without knowing much about algorithms, but with a good background in algorithms, you can do much, much more. * The programming skills and languages let you have a job, the algorithms give you a good job. * People can't live without faith is. Programmers can't code wihtout the algorithms. The algorithm is the faith of programmers. ## How about the book? #### The authors are genius They are [Thomas H. Cormen](https://www.amazon.com/Thomas-H-Cormen/e/B000AQ24AS/ref=dp_byline_cont_pop_ebooks_1), [Charles E. Leiserson](https://www.amazon.com/Charles-E.-Leiserson/e/B000AQ6W9W/ref=ntt_dp_epwbk_2), [Ronald L. Rivest](https://www.amazon.com/Ronald-L.-Rivest/e/B000AQ24MQ/ref=ntt_dp_epwbk_1), and [Cliford Stein](https://www.amazon.com/Clifford-Stein/e/B001K6MOAW/ref=ntt_dp_epwbk_3)
#### The book's contents are awesome ![](https://m.media-amazon.com/images/P/0262033844.01._SCLZZZZZZZ_SX500_.jpg) #### The video lectures are exciting ![](https://pic4.zhimg.com/80/24c116a55d164c9f6ac3737dbd13f2f6_720w.jpg) I'd like to say ***Introduction to Algorithms*** is programmers' Bible. ## The Contents of This Book * [Preface](Preface/Readme.md) * I Fundations * [1 The Role of Algorithms in Computing](Ch01.TheRoleOfAlogrithmsInComputing/Readme.md) * [2 Getting Started](Ch02.GettingStarted/Readme.md) * 3 Growth of Functions * 4 Divide-and-Conquer * 5 Probabilistic Analysis and Randomized Algorithms * II Soriting and Order Statistics * 6 Heapsort * 7 Quicksort * 8 Sorting in Linear Time * 9 Medians and Order Statistics * III Data Structures * 10 Elementary Data Structures * 11 Hash Tables * 12 Binary Search Trees * 13 Red-black Trees * 14 Augmenting Data Structures * IV Advanced Design and Analysis Techniques * 15 Dynamic Programming * 16 Gready Algorithms * 17 Amortized Analysis * V Advanced Data Structures * 18 B-Trees * 19 Fibonacci Heaps * 20 van Emde Boas Tree * 21 Data Structures for Disjoint Sets * VI Graph Algorithms * Elementary Graph Algorithms * Minimum Spanning Trees * Single-Source Shortest Paths * All-Pairs Shortest Paths * Maximum Flow * VII Selected Topics * Multithreaded Algorithms * Matrix Operations * Linear Programming * Polynomials and the FFT * Number-Theoretic Algorithms * String Matching * Computational Geometry * NP-Completeness * Approximation Algorithms * VIII Appendix: Mathematical Background * A Summations * B Sets, Etc. * C Counting and Probability * D Matrices ## How to study this leading textbook ? #### Strategies * Word by word, sincerely, and repeatedly * Divide and conquer this classic textbook chapter by chapter * Success relies on perseverance. #### Tactics * Read the textbook word by word * https://gitee.com/emmix/introductionToAlgorithms/blob/master/common/Introduction_to_Algorithms_3rd_Edition.pdf * http://mitpress.mit.edu/books/introduction-algorithms-third-edition * Watch Video Lectures * https://www.bilibili.com/video/BV1Tb411M7FA?from=search&seid=7451676977698848882 * https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/video-lectures * https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-172-performance-engineering-of-software-systems-fall-2018/lecture-videos * Implement algorithms in textbook with a formal language * https://gitee.com/emmix/introductionToAlgorithms * Optionally do some exercises * Intro_to_Algo_Selected_Solutions.pdf * https://walkccc.github.io/CLRS/Chap06/6.1/ * https://ita.skanev.com/index.html * Read some necessary references ocationally * http://web.cecs.pdx.edu/~maier/cs584/ All [source code and documents](https://gitee.com/emmix/introductionToAlgorithms) are managed via public git repository. ## Presentation video TODO ## References 1. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms. The MIT Press, thrid edition, 2009 2. https://www.amazon.com/gp/product/0262033844/ref=dbs_a_def_rwt_bibl_vppi_i0