Some second editions include only a cursory revision of the book's material and possibly some new additions. While this book does contain a lot of the material that was included in the first edition, it also includes some important new topics.
First, this edition includes improved coverage for the python and C# programming languages. The book's algorithms are written in pseudocode, so you can implement them in any programming language. However, I have provided sample implementations that you can download in python or C#. The text also includes notes that highlight issues that you might encounter when implementing the algorithms in python or C#.
The second edition also describes several new and interesting algorithms, which are shown in the following list.
 Making Random Walks
 SelfAvoiding Random Walks
 Complete SelfAvoiding Random Walks
 The Extended GCD Algorithm and Bézout's Identity
 Improved Fast Exponentiation
 Gaussian Elimination
 Least Squares Fits
 Linear Least Squares
 Polynomial Least Squares
 SelfOrganizing Linked Lists
 Finding a Numeric Array's Mode
 Binomial Heaps
 Pigeonhole Sort
 The BoyerMoore Majority Voting Algorithm
 RodCutting
 The Skyline Problem
 Round Robin Scheduling
 Dynamic Programming
 Left Child/Right Sibling Representation of Trees
 Lowest Common Ancestors
 Interval Trees
 Gradient Descent
 Swarm Intelligence
 Ant Colony Optimization
 Bees Algorithm
 Particle Swarms
 Euclidean Minimal Spanning Trees
 Building Mazes
 Strongly Connected Components, Kosaraju's Algorithm
 Transitive Reduction
 Transitive Closure
 Shortest Path Modifications
 Early Stopping
 Bidirectional Search
 BestFirst Search
 Turn Penalties and Prohibitions
 Network Cloning
 Using a Dictionary
 Using Clone References
 Cliques
 Brute Force
 Maximal Cliques (BronKerbosch)
 Finding Triangles (Chiba and Nishizeki)
 Community Detection
 Maximal Cliques
 GirvanNewman
 Clique Percolation
 Eulerian Paths and Cycles
 Fleury's algorithm
 Hierholzer's algorithm
 Phonetic Algorithms
