Sort
Counting Sort
1. Counting Sort doesn't work for negative number.
2. Counting Sort assumes that each element is SMALL INTEGER.
3. Time Complexity is O(Maximum value - Minimum value).
4. It is useful when the difference is not large
Algorithm:
1. Create an array of the size of the Maximun Value + 1.
2. Count each element.
3. Add up all elements.
4. Put them back to the result.
https://www.youtube.com/watch?v=o3FUC6l89tM
Radix Sort
1. When we are sorting the numbers we will first find the number of digits in the biggest number.
2. If there are N digits in the biggest number then we will need to perform N number of pass.
3. We will pad the remaining numbers with leading zeros so they all have N digits.
4. Then we will take 10 buckets labeled 0 to 9 and sort the numbers.
Time Complexity : O(N*n) where N is the digits of the biggest number, and n is the length of the array.
Space Complexity: O(1), it will take 10 buckets.
https://www.youtube.com/watch?v=YXFI4osELGU
Bucket Sort
1. Setup an array of initially empty "buckets".
2. Scatter: Traverse the original array and extract each element into its bucket.
3. Sort each non-empty buckets (With each bucket Heapified).
4. Visit the buckets and put them back in order.
https://www.youtube.com/watch?v=aaKNtxHgaq4
Selection Sort
https://www.youtube.com/watch?v=BSXIolKg5F8
Insertion Sort
https://www.youtube.com/watch?v=-Z00it6Nkz8
Bubble Sort
https://www.youtube.com/watch?v=llX2SpDkQDc