SitePoint
Blog
Forum
Library
Login
Join Premium
Toggle sidebar
Essential Algorithms: A Practical Approach to Computer Algorithms Using Python and C#, 2nd Edition
Toggle community discussions
Close
Content
Bookmarks
Preface
Essential Algorithms: A Practical Approach to Computer Algorithms Using Python ® and C#
About the Author
About the Technical Editor
Credits
Acknowledgments
WILEY END USER LICENSE AGREEMENT
Introduction
Why You Should Study Algorithms
Algorithm Selection
Who This Book Is For
Getting the Most Out of This Book
This Book's Websites
How This Book Is Structured
What You Need to Use This Book
Conventions
SPLENDID SIDEBARS
How to Contact the Author
1
Algorithm Basics
Approach
Algorithms and Data Structures
Pseudocode
THE MOD OPERATOR
Algorithm Features
LOGARITHMS
Practical Considerations
Summary
Exercises
Numerical Algorithms
Randomizing Data
CRYPTOGRAPHICALLY SECURE PRNGs
A FAIRLY RANDOM ARRAY
Finding Greatest Common Divisors
GREAT GCDs
THE NEED FOR SPEED
Performing Exponentiation
Working with Prime Numbers
Performing Numerical Integration
Finding Zeros
Gaussian Elimination
Least Squares Fits
Summary
Exercises
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
IMPORTANT FACT #1
IMPORTANT FACT #2
Summary
Exercises
Arrays
Basic Concepts
One-Dimensional Arrays
Nonzero Lower Bounds
Triangular Arrays
Sparse Arrays
Matrices
COLUMN-ORDERED SPARSE MATRICES
Summary
Exercises
Stacks and Queues
Stacks
Queues
Binomial Heaps
Summary
Exercises
Sorting
https://learnable-static.s3.amazonaws.com/premium/reeedr/books/essential-algorithms-a-practical-approach-to-computer-algorithms-using-python-and-c-2nd-edition/images/001970.png
https://learnable-static.s3.amazonaws.com/premium/reeedr/books/essential-algorithms-a-practical-approach-to-computer-algorithms-using-python-and-c-2nd-edition/images/000815.png
STABLE SORTING
Sub Algorithms
Summary
Exercises
Searching
Linear Search
Binary Search
Interpolation Search
Majority Voting
Summary
Exercises
Hash Tables
Hash Table Fundamentals
RESIZING HASH TABLES
Chaining
Open Addressing
Summary
Exercises
Recursion
Basic Algorithms
SERIOUS STACK SPACE
Graphical Algorithms
APPROXIMATE ROUTING
Backtracking Algorithms
COUNTING COMBINATIONS
Selections and Permutations
COUNTING PERMUTATIONS WITH DUPLICATES
COUNTING PERMUTATIONS WITHOUT DUPLICATES
Recursion Removal
Summary
Exercises
Trees
Tree Terminology
Binary Tree Properties
LEAF AND FULL NODES
INDUCTIVE REASONING
Tree Representations
XML AND TREES
Tree Traversal
TRAVERSAL AND SEARCHING
PASSING METHODS
Sorted Trees
RANDOM TREE HEIGHT
Lowest Common Ancestors
Threaded Trees
Specialized Tree Algorithms
Interval Trees
OCTTREES
Summary
Exercises
Balanced Trees
AVL Trees
2-3 Trees
B-Trees
Balanced Tree Variations
Summary
Exercises
Decision Trees
Searching Game Trees
Searching General Decision Trees
Swarm Intelligence
Summary
Exercises
Basic Network Algorithms
Network Terminology
Network Representations
Traversals
Strongly Connected Components
Finding Paths
Transitivity
Shortest Path Modifications
Summary
Exercises
More Network Algorithms
Topological Sorting
Cycle Detection
Map Coloring
Maximal Flow
Network Cloning
Cliques
Community Detection
Eulerian Paths and Cycles
Summary
Exercises
String Algorithms
Matching Parentheses
Pattern Matching
String Searching
Calculating Edit Distance
Phonetic Algorithms
Summary
Exercises
Cryptography
Terminology
Transposition Ciphers
Substitution Ciphers
Block Ciphers
Public-Key Encryption and RSA
MATH WARNING
Other Uses for Cryptography
Summary
Exercises
Complexity Theory
N LOG N SORTING
Notation
Complexity Classes
TURING MACHINES
Reductions
NP-Hardness
Detection, Reporting, and Optimization Problems
NP-Complete Problems
Summary
Exercises
Distributed Algorithms
Types of Parallelism
JOINING A GRID
FLOPS
IMPLEMENTING MUTEXES
Distributed Algorithms
BEWARE OF CONTENTION
Summary
Exercises
Interview Puzzles
Asking Interview Puzzle Questions
SALVAGING A BAD QUESTION
Answering Interview Puzzle Questions
ONE GLIB ANSWER
Summary
Exercises
APPENDIX A | Summary of Algorithmic Concepts
Chapter 1: Algorithm Basics
Chapter 2: Numeric Algorithms
Chapter 3: Linked Lists
Chapter 4: Arrays
Chapter 5: Stacks and Queues
Chapter 6: Sorting
Chapter 7: Searching
Chapter 8: Hash Tables
Chapter 9: Recursion
Chapter 10: Trees
Chapter 11: Balanced Trees
Chapter 12: Decision Trees
Chapter 13: Basic Network Algorithms
Chapter 14: More Network Algorithms
Chapter 15: String Algorithms
Chapter 16: Cryptography
Chapter 17: Complexity Theory
Chapter 18: Distributed Algorithms
Chapter 19: Interview Puzzles
APPENDIX B | Solutions to Exercises
Chapter 1: Algorithm Basics
Chapter 2: Numerical Algorithms
Chapter 3: Linked Lists
Chapter 4: Arrays
Chapter 5: Stacks and Queues
Chapter 6: Sorting
Chapter 7: Searching
Chapter 8: Hash Tables
Chapter 9: Recursion
Chapter 10: Trees
Chapter 11: Balanced Trees
Chapter 12: Decision Trees
Chapter 13: Basic Network Algorithms
Chapter 14: More Network Algorithms
Chapter 15: String Algorithms
Chapter 16: Encryption
Chapter 17: Complexity Theory
Chapter 18: Distributed Algorithms
Chapter 19: Interview Puzzles
Glossary
A
B
C
D
E
F
G
H
I
J
K
L
M
N
P
Q
R
S
T
U
V
W
Z
Index
Open text modal
Community Questions
Close