Home
Blog
Index
Search
Articles
Books
Contact Me
About Rod
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(N
2
) 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