Implementation of algorithms and data structures in Java.
[1. Sorting algorithms] (https://github.com/oxaoo/ads/tree/master/src/main/java/com/github/oxaoo/ads/sort)
[1.1. Quick sort] (https://github.com/oxaoo/ads/blob/master/src/main/java/com/github/oxaoo/ads/sort/QuickSort.java)
- Class: Exchange sort
- Stable: No
- Comparison: Yes
- Worst case performance: O(n^2)
- Average case performance: O(n log n)
- Best case performance: O(n log n)
- Worst case space complexity: O(n)
[1.2. Merge sort] (https://github.com/oxaoo/ads/blob/master/src/main/java/com/github/oxaoo/ads/sort/MergeSort.java)
- Class: Merge sort
- Stable: Yes
- Comparison: Yes
- Worst case performance: O(n log n)
- Average case performance: O(n log n)
- Best case performance: O(n log n)
- Worst case space complexity: O(n)
[1.3. Heap sort] (https://github.com/oxaoo/ads/blob/master/src/main/java/com/github/oxaoo/ads/sort/HeapSort.java)
- Class: Selection sort
- Stable: No
- Comparison: Yes
- Worst case performance: O(n log n)
- Average case performance: O(n log n)
- Best case performance: O(n log n)
- Worst case space complexity: O(1)
[1.4. Bubble sort] (https://github.com/oxaoo/ads/blob/master/src/main/java/com/github/oxaoo/ads/sort/BubbleSort.java)
- Class: Exchange sort
- Stable: Yes
- Comparison: Yes
- Worst case performance: O(n^2)
- Average case performance: O(n^2)
- Best case performance: O(n)
- Worst case space complexity: O(1)
[1.5. Insertion sort] (https://github.com/oxaoo/ads/blob/master/src/main/java/com/github/oxaoo/ads/sort/InsertionSort.java)
- Class: Insertion sort
- Stable: Yes
- Comparison: Yes
- Worst case performance: O(n^2)
- Average case performance: O(n^2)
- Best case performance: O(n)
- Worst case space complexity: O(1)
[1.6. Selection sort] (https://github.com/oxaoo/ads/blob/master/src/main/java/com/github/oxaoo/ads/sort/SelectionSort.java)
- Class: Selection sort
- Stable: No
- Comparison: Yes
- Worst case performance: O(n^2)
- Average case performance: O(n^2)
- Best case performance: O(n^2)
- Worst case space complexity: O(1)
[1.7. Bucket sort] (https://github.com/oxaoo/ads/blob/master/src/main/java/com/github/oxaoo/ads/sort/BucketSort.java)
- Class: Distribution sort
- Stable: Yes
- Comparison: No
- Worst case performance: O(n^2)
- Average case performance: O(n+k)
- Best case performance: O(n)
- Worst case space complexity: O(nk)
[1.8. Radix sort (LSD)] (https://github.com/oxaoo/ads/blob/master/src/main/java/com/github/oxaoo/ads/sort/LSDRadixSort.java)
- Class: Distribution sort
- Stable: Yes
- Comparison: No
- Worst case performance: O(nk)
- Average case performance: O(nk)
- Best case performance: O(nk)
- Worst case space complexity: O(n + k)
[1.9. Radix sort (MSD)] (https://github.com/oxaoo/ads/blob/master/src/main/java/com/github/oxaoo/ads/sort/MSDRadixSort.java)
- Class: Distribution sort
- Stable: Yes
- Comparison: No
- Worst case performance: O(nk)
- Average case performance: O(nk)
- Best case performance: O(nk)
- Worst case space complexity: O(n + k)
[1.10. Counting sort] (https://github.com/oxaoo/ads/blob/master/src/main/java/com/github/oxaoo/ads/sort/CountingSort.java)
- Class: Distribution sort
- Stable: Yes
- Comparison: No
- Worst case performance: O(n + k)
- Average case performance: O(n + k)
- Best case performance: O(n + k)
- Worst case space complexity: O(k)
[1.11. Shell sort] (https://github.com/oxaoo/ads/blob/master/src/main/java/com/github/oxaoo/ads/sort/ShellSort.java)
- Class: Insertion sort
- Stable: No
- Comparison: Yes
- Worst case performance: O(n^2)
- Average case performance: O(n^(4/3))
- Best case performance: O(n log n)
- Worst case space complexity: O(1)
[1.12. Comb sort] (https://github.com/oxaoo/ads/blob/master/src/main/java/com/github/oxaoo/ads/sort/CombSort.java)
- Class: Exchange sort
- Stable: No
- Comparison: Yes
- Worst case performance: O(n^2)
- Average case performance: O(n log n)
- Best case performance: O(n log n)
- Worst case space complexity: O(1)