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
 

Below is a summary table of contents showing the book's chapters and their main sections.
  • Introduction
  • Chapter 1: Algorithm Basics
    • Approach
    • Algorithms and Data Structures
    • Pseudocode
    • Algorithm Features
    • Practical Considerations
    • Summary
    • Exercises
  • Chapter 2: Numerical Algorithms
    • Randomizing Data
    • Finding Greatest Common Divisors
    • Performing Exponentiation
    • Working with Prime Numbers
    • Performing Numerical Integration
    • Finding Zeros
    • Gaussian Elimination
    • Least Squares Fits
    • Summary
    • Exercises
  • Chapter 3: Linked Lists
    • Basic Concepts
    • Singly Linked Lists
    • Doubly Linked Lists
    • Sorted Linked Lists
    • Self-Organizing Linked Lists
    • Linked-List Algorithms
    • Multithreaded Linked Lists
    • Linked Lists with Loops
    • Summary
    • Exercises
  • Chapter 4: Arrays
    • Basic Concepts
    • One-Dimensional Arrays
    • Nonzero Lower Bounds
    • Triangular Arrays
    • Sparse Arrays
    • Matrices
    • Summary
    • Exercises
  • Chapter 5: Stacks and Queues
    • Stacks
    • Queues
    • Binomial Heaps
    • Summary
    • Exercises
  • Chapter 6: Sorting
    • O(N2) Algorithms
    • O(N log N) Algorithms
    • Sub O(N log N) Algorithms
    • Summary
    • Exercises
  • Chapter 7: Searching
    • Linear Search
    • Binary Search
    • Interpolation Search
    • Majority Voting
    • Summary
    • Exercises
  • Chapter 8: Hash Tables
    • Hash Table Fundamentals
    • Chaining
    • Open Addressing
    • Summary
    • Exercises
  • Chapter 9: Recursion
    • Basic Algorithms
    • Graphical Algorithms
    • Backtracking Algorithms
    • Selections and Permutations
    • Recursion Removal
    • Summary
    • Exercises
  • Chapter 10: Trees
    • Tree Terminology
    • Binary Tree Properties
    • Tree Representations
    • Tree Traversal
    • Sorted Trees
    • Lowest Common Ancestors
    • Threaded Trees
    • Specialized Tree Algorithms
    • Interval Trees
    • Summary
    • Exercises
  • Chapter 11: Balanced Trees
    • AVL Trees
    • 2-3 Trees
    • B-Trees
    • Balanced Tree Variations
    • Summary
    • Exercises
  • Chapter 12: Decision Trees
    • Searching Game Trees
    • Searching General Decision Trees
    • Swarm Intelligence
    • Summary
    • Exercises
  • Chapter 13: Basic Network Algorithms
    • Network Terminology
    • Network Representations
    • Traversals
    • Strongly Connected Components
    • Finding Paths
    • Transitivity
    • Shortest Path Modifications
    • Summary
    • Exercises
  • Chapter 14 More Network Algorithms
    • Topological Sorting
    • Cycle Detection
    • Map Coloring
    • Maximal Flow
    • Network Cloning
    • Cliques
    • Community Detection
    • Eulerian Paths and Cycles
    • Summary
    • Exercises
  • Chapter 15: String Algorithms
    • Matching Parentheses
    • Pattern Matching
    • String Searching
    • Calculating Edit Distance
    • Phonetic Algorithms
    • Summary
    • Exercises
  • Chapter 16 Cryptography
    • Terminology
    • Transposition Ciphers
    • Substitution Ciphers
    • Block Ciphers
    • Public-Key Encryption and RSA
    • Other Uses for Cryptography
    • Summary
    • Exercises
  • Chapter 17: Complexity Theory
    • Notation 544
    • Complexity Classes 545
    • Reductions 548
    • NP-Hardness 550
    • Detection, Reporting, and Optimization Problems 551
    • NP-Complete Problems 554
    • Summary 557
    • Exercises 558
  • Chapter 18: Distributed Algorithms
    • Types of Parallelism
    • Distributed Algorithms
    • Summary
    • Exercises
  • Chapter 19 Interview Puzzles
    • Asking Interview Puzzle Questions
    • Answering Interview Puzzle Questions
    • Summary
    • Exercises
  • Appendix A: Summary of Algorithmic Concepts
  • Appendix B: Solutions to Exercises
  • Glossary
  • Index