کتاب ساختمان داده کورمن – ادیشن 4
کتاب ساختمان داده کورمن – ادیشن 4
- انتشارات:The MIT Press
- توسط:Charles E. Leiserson, Clifford Stein, Ronald L. Rivest, Thomas H. Cormen
- ISBN:9780262046305
- تاریخ انتشار:2022
- تعداد صفحات:1312
- زبان:English
- نوع فایل: PDF
لینکهایی که باید ببینید:
- جهت مشاهده سایر کتابها کلیک کنید
- برای مشاوره رایگان کنکور (در تلگرام) پیام بدهید.
- .برای مشاهده ویدئوهای آموزش و نکته و تست کنکور کامپیوتر کلیک کنید
خلاصه کتاب ساختمان داده کورمن – ادیشن 4 :
A comprehensive update of the leading algorithms text, with new material on matchings in bipartite graphs, online algorithms, machine learning, and other topics.
Some books on algorithms are rigorous but incomplete; others cover masses of material but lack rigor. Introduction to Algorithms uniquely combines rigor and comprehensiveness. It covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers, with self-contained chapters and algorithms in pseudocode. Since the publication of the first edition, Introduction to Algorithms has become the leading algorithms text in universities worldwide as well as the standard reference for professionals. This fourth edition has been updated throughout.
New for the fourth edition
New chapters on matchings in bipartite graphs, online algorithms, and machine learning
New material on topics including solving recurrence equations, hash tables, potential functions, and suffix arrays
140 new exercises and 22 new problems
Reader feedback–informed improvements to old problems
Clearer, more personal, and gender-neutral writing style
Color added to improve visual presentation
Notes, bibliography, and index updated to reflect developments in the field
Website with new supplementary material
:سرفصل ها
– 1 The Role of Algorithms in Computing
– 1.1 Algorithms
– 1.2 Algorithms as a technology
– 2 Getting Started
– 2.1 Insertion sort
– 2.2 Analyzing algorithms
– 2.3 Designing algorithms
– 3 Characterizing Running Times
– 3.1 O-notation, Ω-notation, and Θ-notation
– 3.2 Asymptotic notation: formal definitions
– 3.3 Standard notations and common functions
– 4 Divide-and-Conquer
– 4.1 Multiplying square matrices
– 4.2 Strassen’s algorithm for matrix multiplication
– 4.3 The substitution method for solving recurrences
– 4.4 The recursion-tree method for solving recurrences
– 4.5 The master method for solving recurrences
– 4.6 Proof of the continuous master theorem
– 4.7 Akra-Bazzi recurrences
– 5 Probabilistic Analysis and Randomized Algorithms
– 5.1 The hiring problem
– 5.2 Indicator random variables
– 5.3 Randomized algorithms
– 5.4 Probabilistic analysis and further uses of indicator random variables
– II Sorting and Order Statistics
– Introduction
– 6 Heapsort
– 6.1 Heaps
– 6.2 Maintaining the heap property
– 6.3 Building a heap
– 6.4 The heapsort algorithm
– 6.5 Priority queues
– 7 Quicksort
– 7.1 Description of quicksort
– 7.2 Performance of quicksort
– 7.3 A randomized version of quicksort
– 7.4 Analysis of quicksort
– 8 Sorting in Linear Time
– 8.1 Lower bounds for sorting
– 8.2 Counting sort
– 8.3 Radix sort
– 8.4 Bucket sort
– 9 Medians and Order Statistics
– 9.1 Minimum and maximum
– 9.2 Selection in expected linear time
– 9.3 Selection in worst-case linear time
– III Data Structures
– Introduction
– 10 Elementary Data Structures
– 10.1 Simple array-based data structures: arrays, matrices, stacks, queues
– 10.2 Linked lists
– 10.3 Representing rooted trees
– 11 Hash Tables
– 11.1 Direct-address tables
– 11.2 Hash tables
– 11.3 Hash functions
– 11.4 Open addressing
– 11.5 Practical considerations
– 12 Binary Search Trees
– 12.1 What is a binary search tree?
– 12.2 Querying a binary search tree
– 12.3 Insertion and deletion
– 13 Red-Black Trees
– 13.1 Properties of red-black trees
– 13.2 Rotations
– 13.3 Insertion
– 13.4 Deletion
– IV Advanced Design and Analysis Techniques
– Introduction
– 14 Dynamic Programming
– 14.1 Rod cutting
– 14.2 Matrix-chain multiplication
– 14.3 Elements of dynamic programming
– 14.4 Longest common subsequence
– 14.5 Optimal binary search trees
– 15 Greedy Algorithms
– 15.1 An activity-selection problem
– 15.2 Elements of the greedy strategy
– 15.3 Huffman codes
– 15.4 Offline caching
– 16 Amortized Analysis
– 16.1 Aggregate analysis
– 16.2 The accounting method
– 16.3 The potential method
– 16.4 Dynamic tables
– V Advanced Data Structures
– Introduction
– 17 Augmenting Data Structures
– 17.1 Dynamic order statistics
– 17.2 How to augment a data structure
– 17.3 Interval trees
– 18 B-Trees
– 18.1 Definition of B-trees
– 18.2 Basic operations on B-trees
– 18.3 Deleting a key from a B-tree
– 19 Data Structures for Disjoint Sets
– 19.1 Disjoint-set operations
– 19.2 Linked-list representation of disjoint sets
– 19.3 Disjoint-set forests
– 19.4 Analysis of union by rank with path compression
– VI Graph Algorithms
– Introduction
– 20 Elementary Graph Algorithms
– 20.1 Representations of graphs
– 20.2 Breadth-first search
– 20.3 Depth-first search
– 20.4 Topological sort
– 20.5 Strongly connected components
– 21 Minimum Spanning Trees
– 21.1 Growing a minimum spanning tree
– 21.2 The algorithms of Kruskal and Prim
– 22 Single-Source Shortest Paths
– 22.1 The Bellman-Ford algorithm
– 22.2 Single-source shortest paths in directed acyclic graphs
– 22.3 Dijkstra’s algorithm
– 22.4 Difference constraints and shortest paths
– 22.5 Proofs of shortest-paths properties
– 23 All-Pairs Shortest Paths
– 23.1 Shortest paths and matrix multiplication
– 23.2 The Floyd-Warshall algorithm
– 23.3 Johnson’s algorithm for sparse graphs
– 24 Maximum Flow
– 24.1 Flow networks
– 24.2 The Ford-Fulkerson method
– 24.3 Maximum bipartite matching
– 25 Matchings in Bipartite Graphs
– 25.1 Maximum bipartite matching (revisited)
– 25.2 The stable-marriage problem
– 25.3 The Hungarian algorithm for the assignment problem
– VII Selected Topics
– Introduction
– 26 Parallel Algorithms
– 26.1 The basics of fork-join parallelism
– 26.2 Parallel matrix multiplication
– 26.3 Parallel merge sort
– 27 Online Algorithms
– 27.1 Waiting for an elevator
– 27.2 Maintaining a search list
– 27.3 Online caching
– 28 Matrix Operations
– 28.1 Solving systems of linear equations
– 28.2 Inverting matrices
– 28.3 Symmetric positive-definite matrices and least-squares approximation
– 29 Linear Programming
– 29.1 Linear programming formulations and algorithms
– 29.2 Formulating problems as linear programs
– 29.3 Duality
– 30 Polynomials and the FFT
– 30.1 Representing polynomials
– 30.2 The DFT and FFT
– 30.3 FFT circuits
– 31 Number-Theoretic Algorithms
– 31.1 Elementary number-theoretic notions
– 31.2 Greatest common divisor
– 31.3 Modular arithmetic
– 31.4 Solving modular linear equations
– 31.5 The Chinese remainder theorem
– 31.6 Powers of an element
– 31.7 The RSA public-key cryptosystem
– 31.8 Primality testing
– 32 String Matching
– 32.1 The naive string-matching algorithm
– 32.2 The Rabin-Karp algorithm
– 32.3 String matching with finite automata
– 32.4 The Knuth-Morris-Pratt algorithm
– 32.5 Suffix arrays
– 33 Machine-Learning Algorithms
– 33.1 Clustering
– 33.2 Multiplicative-weights algorithms
– 33.3 Gradient descent
– 34 NP-Completeness
– 34.1 Polynomial time
– 34.2 Polynomial-time verification
– 34.3 NP-completeness and reducibility
– 34.4 NP-completeness proofs
– 34.5 NP-complete problems
– 35 Approximation Algorithms
– 35.1 The vertex-cover problem
– 35.2 The traveling-salesperson problem
– 35.3 The set-covering problem
– 35.4 Randomization and linear programming
– 35.5 The subset-sum problem
– VIII Appendix: Mathematical Background
– Introduction
– A Summations
– A.1 Summation formulas and properties
– A.2 Bounding summations
– B Sets, Etc.
– B.1 Sets
– B.2 Relations
– B.3 Functions
– B.4 Graphs
– B.5 Trees
– C Counting and Probability
– C.1 Counting
– C.2 Probability
– C.3 Discrete random variables
– C.4 The geometric and binomial distributions
– C.5 The tails of the binomial distribution
– D Matrices
– D.1 Matrices and matrix operations
– D.2 Basic matrix properties
– Bibliography
دیدگاهتان را بنویسید