Home Blog Index Search Articles Books Contact Me About Rod
Follow me on Twitter RSS Feed
Essential Algorithms, Second Edition: A Practical Approach to Computer Algorithms Using Python and C#

What's New in Edition Two?

Overview Table of Contents Errata
Wiley Barnes & Noble Amazon
Download C# Code Download Python Code
 

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
    • Self-Avoiding Random Walks
    • Complete Self-Avoiding 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
  • Self-Organizing Linked Lists
  • Finding a Numeric Array's Mode
  • Binomial Heaps
  • Pigeonhole Sort
  • The Boyer-Moore Majority Voting Algorithm
  • Rod-Cutting
  • 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
    • Best-First Search
    • Turn Penalties and Prohibitions
  • Network Cloning
    • Using a Dictionary
    • Using Clone References
  • Cliques
    • Brute Force
    • Maximal Cliques (Bron-Kerbosch)
    • Finding Triangles (Chiba and Nishizeki)
  • Community Detection
    • Maximal Cliques
    • Girvan-Newman
    • Clique Percolation
  • Eulerian Paths and Cycles
    • Fleury's algorithm
    • Hierholzer's algorithm
  • Phonetic Algorithms
    • Soundex
    • Metaphone