Involving algorithms implemented in Java. Most code are based on CLRS and Data Structures and Algorithm Analysis in Java.
- Exchange sorts
- Bubble sort
- Quicksort
- Selection sorts
- Selection sort
- Heapsort
- Insertion sorts
- Insertion sort
- Shellsort
- Merge sorts
- Merge sort
- Distribution sorts
- Counting sort
- Radix sort
- Bucket sort
- Trees
- Binary Search Tree
- Red-Black Tree
- B-Tree
- Order-statistic Tree (Augmenting red-black trees)
- Interval Tree (Augmenting red-black trees)
- Breadth-first search
- Depth-first search
- Binary search
- The maximum-subarray problem
- Counting inversions
- Strassen’s algorithm for matrix multiplication
- Selection problem: finding the ith smallest element of the array
- Randomly permuting arrays
- Sorting the elements of an array according to their priorities
- Permuting the given array in place.
- The on-line hiring problem
- Rod-cutting problem
- Matrix-chain multiplication
- Longest-common-subsequence problem
- Activity-selection problem
- Huffman codes
- Computing Fibonacci numbers recursively
- Multithreaded merge sort
- String Matching
- The naive string-matching algorithm.
- The Rabin-Karp algorithm.
- String matching with finite automata.
- The Knuth-Morris-Pratt algorithm.
- Knapsack problem
- 0-1 Knapsack Problem
- Fractional Knapsack Problem
- Matrix Operations
- Solving systems of linear equations by LUP decomposition
- Inverting matrices
- N-Queens
- Finding minimum and maximum simultaneously