Essential Information that Every Serious Programming Student Needs to Know about Algorithms and Data Structures
A Classic Reference
The latest version of Sedgewick's best-selling series, reflecting an indispensable body of knowledge developed over the past several decades.
Broad Coverage
Full treatment of data structures and algorithms for sorting, searching, graph processing, string processing, and geometric applications, including fifty algorithms every programmer should know. See www.cs.princeton.edu/algs4/top50 .
Completely Revised Code
New Java implementations written in an accessible, modular programming style, where all of the code is exposed to the reader and ready to use. New versions of quicksort, LZW compression, red-black tree search, RE pattern matching, and many other algorithms.
Engages with Applications
Algorithms are studied in the context of important scientific, engineering, and commercial applications. Clients and algorithms are expressed in real code, not the pseudo-code found in many other books.
Intellectually Stimulating
Engages reader interest with clear, concise text, detailed examples with visuals, carefully crafted code, historical and scientific context, and exercises at all levels.
A Scientific Approach
Develops precise statements about performance, supported by appropriate mathematical models and empirical studies validating those models.
Integrated with the Web
Visit www.cs.princeton.edu/algs4 for a freely accessible, comprehensive Web site, including text digests, program code, test data, programming projects, exercises, lecture slides, and other resources.
Product Description
This fourth edition of Robert Sedgewick and Kevin Wayne’s Algorithms is the leading textbook on algorithms today and is widely used in colleges and universities worldwide. This book surveys the most important computer algorithms currently in use and provides a full treatment of data structures and algorithms for sorting, searching, graph processing, and string processing -- including fifty algorithms every programmer should know. In this edition, new Java implementations are written in an accessible modular programming style, where all of the code is exposed to the reader and ready to use.
The algorithms in this book represent a body of knowledge developed over the last 50 years that has become indispensable, not just for professional programmers and computer science students but for any student with interests in science, mathematics, and engineering, not to mention students who use computation in the liberal arts.
The companion web site, algs4.cs.princeton.edu contains
An online synopsis
Full Java implementations
Test data
Exercises and answers
Dynamic visualizations
Lecture slides
Programming assignments with checklists
Links to related material
The MOOC related to this book is accessible via the "Online Course" link at algs4.cs.princeton.edu . The course offers more than 100 video lecture segments that are integrated with the text, extensive online assessments, and the large-scale discussion forums that have proven so valuable. Offered each fall and spring, this course regularly attracts tens of thousands of registrants.
Robert Sedgewick and Kevin Wayne are developing a modern approach to disseminating knowledge that fully embraces technology, enabling people all around the world to discover new ways of learning and teaching. By integrating their textbook, online content, and MOOC, all at the state of the art, they have built a unique resource that greatly expands the breadth and depth of the educational experience.
Features + Benefits
The #1 practical resource for everyone seeking to run programs faster or solve larger problems
Surveys today's most useful algorithms, with copious illustrations and examples
Contains many new examples, ranging from physics, biology, and engineering to data compression and web search
Contains real (not pseudocode) implementations, with detailed performance insights
A companion web site, algs4.cs.princeton.edu , with many more resources for instructors, including text digests, program code, test data, programming projects, exercises, lecture slides, and other resources
Preface viii
Chapter 1: Fundamentals 3
1.1 Basic Programming Model 8
1.2 Data Abstraction 64
1.3 Bags, Queues, and Stacks 120
1.4 Analysis of Algorithms 172
1.5 Case Study: Union-Find 216
Chapter 2: Sorting 243
2.1 Elementary Sorts 244
2.2 Mergesort 270
2.3 Quicksort 288
2.4 Priority Queues 308
2.5 Applications 336
Chapter 3: Searching 361
3.1 Symbol Tables 362
3.2 Binary Search Trees 396
3.3 Balanced Search Trees 424
3.4 Hash Tables 458
3.5 Applications 486
Chapter 4: Graphs 515
4.1 Undirected Graphs 518
4.2 Directed Graphs 566
4.3 Minimum Spanning Trees 604
4.4 Shortest Paths 638
Chapter 5: Strings 695
5.1 String Sorts 702
5.2 Tries 730
5.3 Substring Search 758
5.4 Regular Expressions 788
5.5 Data Compression 810
Chapter 6: Context 853
Index 933
List of Algorithms 954
List of Clients 955
The leading introduction to computer algorithms in use today, including fifty algorithms every programmer should know
Princeton Computer Science professors, Robert Sedgewick and Kevin Wayne, survey the most important computer algorithms in use and of interest to anyone working in science, mathematics, and engineering, and those who use computation in the liberal arts. They provide a full treatment of data structures and algorithms for key areas that enable you to confidently implement, debug, and put them to work in any computational environment.
Fundamentals:
Basic programming modelsData abstractionBags, queues, and stacksAnalysis of algorithms
Sorting
Elementary sortsMergesortQuicksortPriority queuesApplications
Graphs
Undirected graphsDirected graphsMinimum spanning treesShortest paths
Strings
String sortsTriesSubstring searchRegular expressionsData compression
These algorithms are generally ingenious creations that, remarkably, can each be expressed in just a dozen or two lines of code. As a group, they represent problem-solving power of amazing scope. They have enabled the construction of computational artifacts, the solution of scientific problems, and the development of commercial applications that would not have been feasible without them.
A Classic Reference
The latest version of Sedgewick's best-selling series, reflecting an indispensable body of knowledge developed over the past several decades.
Broad Coverage
Full treatment of data structures and algorithms for sorting, searching, graph processing, string processing, and geometric applications, including fifty algorithms every programmer should know. See www.cs.princeton.edu/algs4/top50 .
Completely Revised Code
New Java implementations written in an accessible, modular programming style, where all of the code is exposed to the reader and ready to use. New versions of quicksort, LZW compression, red-black tree search, RE pattern matching, and many other algorithms.
Engages with Applications
Algorithms are studied in the context of important scientific, engineering, and commercial applications. Clients and algorithms are expressed in real code, not the pseudo-code found in many other books.
Intellectually Stimulating
Engages reader interest with clear, concise text, detailed examples with visuals, carefully crafted code, historical and scientific context, and exercises at all levels.
A Scientific Approach
Develops precise statements about performance, supported by appropriate mathematical models and empirical studies validating those models.
Integrated with the Web
Visit www.cs.princeton.edu/algs4 for a freely accessible, comprehensive Web site, including text digests, program code, test data, programming projects, exercises, lecture slides, and other resources.
Product Description
This fourth edition of Robert Sedgewick and Kevin Wayne’s Algorithms is the leading textbook on algorithms today and is widely used in colleges and universities worldwide. This book surveys the most important computer algorithms currently in use and provides a full treatment of data structures and algorithms for sorting, searching, graph processing, and string processing -- including fifty algorithms every programmer should know. In this edition, new Java implementations are written in an accessible modular programming style, where all of the code is exposed to the reader and ready to use.
The algorithms in this book represent a body of knowledge developed over the last 50 years that has become indispensable, not just for professional programmers and computer science students but for any student with interests in science, mathematics, and engineering, not to mention students who use computation in the liberal arts.
The companion web site, algs4.cs.princeton.edu contains
An online synopsis
Full Java implementations
Test data
Exercises and answers
Dynamic visualizations
Lecture slides
Programming assignments with checklists
Links to related material
The MOOC related to this book is accessible via the "Online Course" link at algs4.cs.princeton.edu . The course offers more than 100 video lecture segments that are integrated with the text, extensive online assessments, and the large-scale discussion forums that have proven so valuable. Offered each fall and spring, this course regularly attracts tens of thousands of registrants.
Robert Sedgewick and Kevin Wayne are developing a modern approach to disseminating knowledge that fully embraces technology, enabling people all around the world to discover new ways of learning and teaching. By integrating their textbook, online content, and MOOC, all at the state of the art, they have built a unique resource that greatly expands the breadth and depth of the educational experience.
Features + Benefits
The #1 practical resource for everyone seeking to run programs faster or solve larger problems
Surveys today's most useful algorithms, with copious illustrations and examples
Contains many new examples, ranging from physics, biology, and engineering to data compression and web search
Contains real (not pseudocode) implementations, with detailed performance insights
A companion web site, algs4.cs.princeton.edu , with many more resources for instructors, including text digests, program code, test data, programming projects, exercises, lecture slides, and other resources
Preface viii
Chapter 1: Fundamentals 3
1.1 Basic Programming Model 8
1.2 Data Abstraction 64
1.3 Bags, Queues, and Stacks 120
1.4 Analysis of Algorithms 172
1.5 Case Study: Union-Find 216
Chapter 2: Sorting 243
2.1 Elementary Sorts 244
2.2 Mergesort 270
2.3 Quicksort 288
2.4 Priority Queues 308
2.5 Applications 336
Chapter 3: Searching 361
3.1 Symbol Tables 362
3.2 Binary Search Trees 396
3.3 Balanced Search Trees 424
3.4 Hash Tables 458
3.5 Applications 486
Chapter 4: Graphs 515
4.1 Undirected Graphs 518
4.2 Directed Graphs 566
4.3 Minimum Spanning Trees 604
4.4 Shortest Paths 638
Chapter 5: Strings 695
5.1 String Sorts 702
5.2 Tries 730
5.3 Substring Search 758
5.4 Regular Expressions 788
5.5 Data Compression 810
Chapter 6: Context 853
Index 933
List of Algorithms 954
List of Clients 955
The leading introduction to computer algorithms in use today, including fifty algorithms every programmer should know
Princeton Computer Science professors, Robert Sedgewick and Kevin Wayne, survey the most important computer algorithms in use and of interest to anyone working in science, mathematics, and engineering, and those who use computation in the liberal arts. They provide a full treatment of data structures and algorithms for key areas that enable you to confidently implement, debug, and put them to work in any computational environment.
Fundamentals:
Basic programming modelsData abstractionBags, queues, and stacksAnalysis of algorithms
Sorting
Elementary sortsMergesortQuicksortPriority queuesApplications
Graphs
Undirected graphsDirected graphsMinimum spanning treesShortest paths
Strings
String sortsTriesSubstring searchRegular expressionsData compression
These algorithms are generally ingenious creations that, remarkably, can each be expressed in just a dozen or two lines of code. As a group, they represent problem-solving power of amazing scope. They have enabled the construction of computational artifacts, the solution of scientific problems, and the development of commercial applications that would not have been feasible without them.