Solutions to exercises from book "Essential Algorithms: A Practical Approach to Computer Algorithms", 1st Edition
- Network
- Tree
- Function graph
- Edit distance
- Tower of Hanoi
- Quadtree
- Fractals
- Algorithm Basics
- Numerical Algorithms
- Linked Lists
- Arrays
- Stacks and Queues
- Sorting
- Searching
- Hash Tables
- Recursion
- Trees
- Balanced Trees
- Decision Trees
- Basic Network Algorithms
- More Network Algorithms
- String Algorithms
- Cryptography
- Complexity Theory
- Distributed Algorithms
- Interview Puzzles
- Check if list contains duplicates
- Compare algorithms 1
- Compare algorithms 2
- Fibonacci numbers
- Generate unordered pairs
- Calculate GCD for random pairs
- Carmichael numbers
- Deal cards
- Euclidean algorithm
- Fast exponentiation
- Flip coin using six-sided die
- Generate fair values with biased die
- Least common multiple
- Modular fast exponentiation
- Pick random values from array
- Rectangle rule
- Roll 2 dice
- Sieve of Eratosthenes
- Check if linked list is sorted
- Delete cell from doubly linked list
- Detect loop/Reverse list/Tortoise and hare
- Find largest item in linked list
- Insert cell in doubly linked list
- Insert cell in sorted doubly linked list
- Linked list with bottom variable
- Multithreaded linked list
- Add sparse matrices/Multiply normal matrices
- Add triangular arrays
- Anti-diagonal of 2 dimensional array
- Distance to nearest edge in 2 dimensional array
- Main diagonal of 2 dimensional array
- Median of sorted array
- Multiply sparse matrices
- Multiply triangular arrays
- Remove item from array
- Sample standard deviation
- Sample variance
- Triangular array(lower-left, upper-right)
- Triangular array(upper-left)
- 3D Triangular array
- Bank simulation(multiheaded queue)
- Deque
- Double stack
- Insertion sort with queues
- Insertion sort with stacks v1
- Insertion sort with stacks v2
- Priority queue
- Reverse stack
- Selection sort with queues
- Selection sort with stacks
- Bubble sort v1
- Bubble sort v2
- Bucket sort
- Counting sort v1
- Counting sort v2
- Heap priority queue
- Heap sort
- Insertion sort
- Quick sort with in-place partitioning
- Quick sort with queues
- Quick sort with stacks
- Selection sort
- Binary search
- Interpolation search v1
- Interpolation search v2
- Linear search
- Linear search with sorted linked list
- Recursive binary search
- Recursive interpolation search
- Recursive linear search
- Compare hash tables with chaining
- Compare open addressing algorithms
- Hash table with chaining
- Hash table with chaining(sorted)
- Hash table with open addressing(double hashing)
- Hash table with open addressing(linear probing)
- Hash table with open addressing(ordered double hashing)
- Hash table with open addressing(ordered quadratic hashing)
- Hash table with open addressing(pseudorandom probing)
- Hash table with open addressing(quadratic probing)
- Eight queens v1
- Eight queens v2
- Eight queens v3
- Hilbert curve
- Knight's tour(backtracking)
- Knight's tour(Warnsdorff's heuristic)
- Koch snowflake v1
- Koch snowflake v2
- Nonrecursive factorial algorithm
- Nonrecursive fibonacci algorithm v1
- Nonrecursive fibonacci algorithm v2
- Nonrecursive Hilbert curve
- Permutations with and without duplicates
- Recursive factorial algorithm
- Recursive fibonacci algorithm
- Recursive fibonacci algorithm(with saved values)
- Selections with and without duplicates
- Sierpinski carpet
- Sierpinski curve
- Sierpinski curve pieces
- Sierpinski gasket
- Tower of Hanoi
- Tower of Hanoi(graphical)
- Animal game
- Display tree
- Display tree(graphical) v1
- Display tree(graphical) v2
- Evaluate mathematical expressions
- Evaluate more complicated mathematical expressions
- Quadtree(graphical)
- Reverse inorder traversal on threaded sorted tree
- Threaded sorted tree traversals
- Threaded sorted tree(graphical)
- Tree traversals
- Trie
- Branch and bound
- Compare branch and bound and exhaustive search algorithms
- Hill climbing heuristic
- Hill climbing heuristic(sorted)
- Improvement heuristic
- Optimizing partition problem(exhaustive search)
- Random heuristic
- Tic-tac-toe game
- Tic-tac-toe(exhaustive search)
- Tic-tac-toe(interactive, exhaustive search)
-
- Color network(hill climbing heuristic)
- Color network using fewest possible colors(exhaustive search)
- Connected components
- Label-correcting shortest path
- Label-correcting shortest path tree
- Label-setting shortest path
- Label-setting shortest path tree
- Log all shortest paths
- Log Distance and Via arrays
- Maximal flow
- Minimal flow cut
- Minimal spanning tree
- Network traversal
- Path between 2 nodes
- Spanning tree
- Topological sorting
- Two-color network
- Deterministic finite automaton
- Edit distance
- Edit distance of 2 Files
- Evaluate boolean expression
- Graph entered expression
- Parse and evaluate expression
- Properly nested parentheses