Introduction to Algorithms. PDF

Source: Internet
Author: User
Tags greatest common divisor

: Network Disk Download

Content Introduction· · · · · ·

In the book on algorithms, some are very rigorous, but not comprehensive enough, others involve a lot of subject matter, but lack of rigor. This book will be rigorous and comprehensive integration, in-depth discussion of various algorithms, and focus on the design and analysis of these algorithms can be accepted at all levels of readers. Each chapter of the book is self-contained and can be used as an independent learning unit; the algorithm is described in English and pseudo-code, and the person with preliminary programming experience can understand it, and the explanation and interpretation are easy to understand, without losing depth and mathematical rigor.

The book is a classic material, rich content, reasonable structure, logical clarity, the data structure of undergraduates and graduate students of the algorithm courses are very practical textbooks, in the IT professional career, this is a desk must be a reference book or engineering practice manual.

Major changes in version 3rd:

Added the van Emde Boas tree and multithreading algorithm, and moved the matrix base to the appendix.

Revised the content of the chapter of recursion (now known as the "divide-and-conquer strategy") to cover more broadly the divide-and-conquer approach.

Remove two chapters that are seldom taught: two-item heap and sort network.

Revised dynamic programming and greedy algorithm related content.

Flow network related materials are now based on all flows on the edge.

As the material on the Matrix Foundation and the Strassen algorithm moves to other chapters, the contents of this chapter of the matrix operation are much smaller.

The discussion of the Knuth-morris-pratt string matching algorithm was modified.

100 additional exercises and 28 study questions have been added, and references have been updated and supplemented.

Author profile ...

Thomas H. Cormen (Thomas Coleman) is professor and Dean of the Department of Computer Science at Dartmouth College. Current research interests include: algorithmic engineering, parallel computing, accelerated computing with high latency. He received his PhD and Master's degree in electronic engineering and computer Science from MIT in 1993 and 1986, and was taught by Professor Charles E. Leiserson. Due to his outstanding contribution in the field of computer education, Professor Cormen was awarded the 2009 ACM Outstanding Instructor Award.

Charles E. Leiserson, professor of computer science and electrical Engineering at MIT, Margaret MacVicar Faculty Fellow. He currently hosts the MIT Supercomputing Research Group and is a member of the MIT Computational Theory research Group for Computer Science and artificial intelligence. His research interests focus on the theoretical principles of parallel and distributed computing, especially those related to engineering realities. Professor Leiserson holds a PhD in computer science from Carnegie Mellon University, as well as the ACM, IEEE and Siam.

Ronald L. Rivest (Ronald Leevist) is a professor at the MIT Department of Electronic Engineering and computer science, Andrew and Ursula Witterbi (Andrew and Erna Viterbi). He is a member of the MIT computer Science and AI Lab and leads the Center for information Security and privacy. He received his PhD in computer Science from Stanford University in 1977, mainly in cryptography and computer security algorithms. He and Adi Shamir and Len Adleman invented the RSA public key algorithm, the algorithm in information security to achieve the biggest breakthrough, this result also made him and Shamir, Adleman together get 2002 ACM Turing Award. He is now the head of the National Cryptography Society.

Clifford Stein, professor of computer science at Columbia University and Department of Industrial Engineering and operational operations, is also head of the Department of Industrial Engineering and operational research. Prior to joining Columbia University, he taught in the Department of Computer Science at Dartmouth College for 9 years. Professor Stein has a master's and PhD degree from MIT. His research interests include: design and analysis of algorithms, combinatorial optimization, operations research, network algorithms, scheduling, algorithmic engineering, and bio-computing.

Catalogue and Publishers ' words
Translator sequence
Objective
The first part of the basic knowledge
The 1th chapter the function of the algorithm in the calculation 3
1.1 Algorithm 3
1.2 As a technique of algorithm 6
Study Questions 8
This chapter notes 8
2nd Algorithm Fundamentals 9
2.1 Inserting Sort 9
2.2 Analysis Algorithm 13
2.3 Design Algorithm 16
2.3.1 Divide and conquer law 16
2.3.2 analysis divide and conquer algorithm 20
Study Questions 22
This chapter notes 24
The 3rd chapter increases the function by 25
3.1 Asymptotic notation 25
3.2 Standard notation and common functions 30
Study Questions 35
This chapter notes 36
Chapter 4th Division and Treatment Strategy 37
4.1 Maximum sub-array problem 38
4.2 Strassen algorithm for matrix multiplication 43
4.3 Using the surrogate method to solve the recursive equation 47
4.4 Recursive tree method for solving recursion type 50
4.5 using the Main method to solve the recursive type 53
4.6 Proving the main theorem 55
4.6.1 of the power of B to prove the main theorem 56
4.6.2 rounding down and rounding up 58
Study Questions 60
This chapter notes 62
The 5th chapter probability analysis and stochastic algorithm 65
5.1 Employment Questions 65
5.2 Indicator Random Variable 67
5.3 Random Algorithm 69
5.4 Probability analysis and further use of indicator random variables 73
5.4.1 Birthday Paradox 73
5.4.2 Ball with Box 75
5.4.3 Feature Sequence 76
5.4.4 Online Hiring Questions 78
Study Questions 79
This chapter notes 80
Second part sort and order statistics
6th Heap Sort 84
6.1 Heaps of 84
6.2 Nature of the maintenance heap 85
6.3 Building the heap 87
6.4 Heap Sorting algorithm 89
6.5 Priority Queue 90
Study Questions 93
This chapter notes 94
7th Chapter Quick Sort 95
7.1 Description of the Quick Sort 95
7.2 Quick-Sort Performance 97
7.3 Quick-Sort randomized version 100
7.4 Quick Sort Analysis 101
7.4.1 Worst Case Analysis 101
7.4.2 Expected run time 101
Study Questions 103
This chapter notes 106
8th chapter Linear Time Sorting 107
8.1 The lower bound of the sorting algorithm 107
8.2 Counting Sort 108
8.3 Cardinality Sort 110
8.4 Barrels Sorted 112
Study Questions 114
This chapter notes 118
9th-Median and sequential statistics 119
9.1 Minimum and Maximum 119
9.2-Phase selection algorithm for linear time 120
9.3 Worst case for linear time selection algorithm 123
Study Questions 125
This chapter notes 126
Third part data structure
10th BASIC Data Structure 129
10.1 Stacks and Queues 129
10.2 Linked List 131
10.3 Implementation of pointers and objects 134
10.4 Representation of a root tree 137
Study Questions 139
This chapter notes 141
11th Chapter Hash Table 142
11.1 Direct Addressing Table 142
11.2 Hash Table 143
11.3 Hash Function 147
11.3.1 Division Hashing Method 147
11.3.2 Multiplication Hashing Method 148
11.3.3 Full Domain Hashing method 148
11.4 Open Addressing Method 151
11.5 Full Hash 156
Study Questions 158
This chapter notes 160
12th Chapter Two Fork Search tree 161
12.1 What is a two-fork search tree 161
12.2 Query Binary search tree 163
12.3 Inserting and deleting 165
12.4 randomly constructed binary search tree 169
Study Questions 171
This chapter notes 173
13th Chapter Red Black Tree 174
13.1 Properties of red and black trees 174
13.2 Rotation 176
13.3 inserting 178
13.4 Delete 183
Study Questions 187
This chapter notes 191
Chapter 14th expansion of the data structure 193
14.1 Dynamic Sequence Statistics 193
14.2 How to expand Data Structures 196
14.3 Interval Tree 198
Study Questions 202
This chapter notes 202
Part IV advanced design and analysis techniques
The 15th chapter Dynamic Planning 204
15.1 Steel strip Cutting 204
15.2 Matrix chain Multiplication 210
15.3 Dynamic Programming Principle 215
15.4 Longest common sub-sequence 222
15.5 Best binary search tree 226
Study Questions 231
This chapter notes 236
16th Greedy Algorithm 237
16.1 Event Selection Question 237
16.2 Greedy Algorithm principle 242
16.3-Huffman Code 245
16.4 quasi-array and greedy algorithm 250
16.5 solving task scheduling problem with quasi-array 253
Study Questions 255
This chapter notes 257
Chapter 17th Amortization Analysis 258
17.1 Aggregation Analysis 258
17.2 Accounting Method 261
17.3 Potential Law 262
17.4 Dynamic Table 264
17.4.1 Table Expansion 265
17.4.2 table expansion and contraction 267
Study Questions 270
This chapter notes 273
Part V Advanced data structure
18th B-Tree 277
18.1 B-Tree definition 279
Basic operations on 18.2 B-Tree 281
18.3 Delete a keyword from the B-Tree 286
Study Questions 288
This chapter notes 289
19th Zangfepo Heap 290
19.1 Fibonacci Structure 291
19.2 can merge heap operations 292
19.3 keyword impairment and deletion of a node 298
19.4 maximum degrees of bounds 300
Study Questions 302
This chapter notes 305
20th van Emde Boas tree 306
20.1 Basic Methods 306
20.2 Recursive Structure 308
20.2.1 prototype van Emde Boas structure 310
20.2.2 prototype van Emde Boas structure operation 311
20.3 van Emde Boas tree and its operations 314
20.3.1 van Emde Boas tree 315
20.3.2 van Emde Boas tree Operation 317
Study Questions 322
This chapter notes 323
21st. Data structures for disjoint collections 324
21.1 operation of disjoint sets 324
21.2 List of disjoint sets represents 326
21.3 Disjoint collection Forest 328
21.4 combined by rank analysis with path compression 331
Study Questions 336
This chapter notes 337
Part VI graph algorithm
The 22nd Chapter Basic Graph algorithm 341
22.1 representation of the figure 341
22.2 Breadth First Search 343
22.3 Depth First search 349
22.4 topology sequencing 355
22.5 Strong connected Components 357
Study Questions 360
This chapter notes 361
23rd. Minimum spanning Tree 362
23.1 formation of the minimum spanning tree 362
23.2 Kruskal algorithm and prim algorithm 366
Study Questions 370
This chapter notes 373
24th single Source Shortest path 374
24.1 Bellman-ford Algorithm 379
24.2 single-source shortest path problem in a forward-free graph 381
24.3 Dijkstra Algorithm 383
24.4 differential constraints and shortest path 387
24.5 proof of the shortest path nature 391
Study Questions 395
This chapter notes 398
25th. The shortest path problem for all node pairs 399
25.1 Shortest path and matrix multiplication 400
25.2 Floyd-warshall algorithm 404
25.3 Johnson algorithm for sparse graphs 409
Study Questions 412
This chapter notes 412
26th Max Flow 414
26.1 Stream Network 414
26.2 Ford\fulkerson Method 418
26.3 Maximum binary match 428
26.4 Push sticker Labeling Algorithm 431
26.5 Pre-reset label algorithm 438
Study Questions 446
This chapter notes 449
Selected problems in part VII algorithm
27th Multithreading Algorithm 453
27.1 Dynamic Multithreading Fundamentals 454
27.2 Multi-Threading matrix multiplication 465
27.3 Multi-threaded Merge sort 468
Study Questions 472
This chapter notes 476
28th Matrix Operation 478
28.1 solving a linear equation Group 478
28.2 Matrix inversion 486
28.3 symmetric positive definite matrices and least squares approximation 489
Study Questions 493
This chapter notes 494
29th. Linear Programming 495
29.1 Standard and relax type 499
29.2 expressing the problem as a linear plan 504
29.3 simplex Algorithm 507
29.4 Duality of 516
29.5 initial basic feasible solution 520
Study Questions 525
This chapter notes 526
30th polynomial and fast Fourier transform 527
30.1 Expression of polynomial 528
30.2 DfT and FFT 531
30.3 Efficient FFT Implementation 536
Study Questions 539
This chapter notes 541
31st 543 number Theory algorithm
31.1 Basic theory Concept 543
31.2 Greatest common divisor 547
31.3 modulo Operation 550
31.4 solving a modal linear equation 554
31.5 China remainder theorem 556
31.6 The power of the element 558
31.7 RSA public Key cryptography System 561
31.8 test of prime number 565
31.9 Factorization of integers 571
Study Questions 574
This chapter notes 576
32nd string Match 577
32.1 naïve string matching algorithm 578
32.2 Rabin\karp Algorithm 580
32.3 using finite automata for string matching 583
32.4 Knuth-morris-pratt Algorithm 588
Study Questions 594
This chapter notes 594
Chapter 33rd Computational Geometry 595
33.1 Properties of Segments 595
33.2 determine if any pair of segments intersect 599
33.3 Finding convex hull 604
33.4 Find nearest point to 610
Study Questions 613
This chapter notes 615
34th. NP Complete 616
34.1 Polynomial time 619
34.2 validation of polynomial time 623
34.3 NP completeness and the attribution of 626
34.4 proof of the NP completeness 633
34.5 NP complete problem 638
34.5.1 Regiment Question 638
34.5.2 Vertex Overlay Problem 640
34.5.3 Hamiltonian loop Problem 641
34.5.4 Travel Business Question 644
34.5.5 Subsets and issues 645
Study Questions 647
This chapter notes 649
The 35th Chapter approximation algorithm 651
35.1 Vertex overlay problem 652
35.2 Travel Business Questions 654
35.2.1 problem of traveling quotient satisfying triangular inequalities 654
35.2.2 General travel Business Question 656
35.3 set cover problem 658
35.4 randomization and linear programming 661
35.5 subsets and issues 663
Study questions 667
This chapter notes 669
Part I Appendix: Basic Knowledge of mathematics
Appendix A summation 672
A.1 summation formula and its properties 672
A.2 Determining the bounds of the summation time 674
Study Questions 678
Appendix Notes 678
Appendix B set of discrete mathematics content 679
B.1 Collection 679
B.2 Relationship 682
B.3 function 683
B.4 Figure 685
B.5 Tree 687
b.5.1 Free Tree 688
b.5.2 has a root tree and an ordered tree 689
b.5.3 two fork tree and position tree 690
Study Questions 691
Appendix Notes 692
Appendix C count and Probability 693
C.1 Count 693
C.2 Probability 696
C.3 Discrete random variable 700
C.4 geometric distribution and two-item distribution 702
C. Tail of 52 distributions 705
Study Questions 708
Appendix Notes 708
Appendix D Matrix 709
D.1 Matrix and matrix operations 709
D.2 Matrix Basic Properties 712
Study Questions 714
Appendix Notes 715
References 716
Index 732

: Network Disk Download

Introduction to Algorithms. PDF

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.