Sorting

Sorting

1. Count Sort

Time: O(n), Space: O(n)

public static void countSort(int[] nums) {
    int max = Integer.MIN_VALUE, min = Integer.MAX_VALUE;

    for (int num : nums) {
        max = Math.max(max, num);
        min = Math.min(min, num);
    }

    int[] count = new int[max - min + 1];
    for (int num : nums) {
        ++count[num - min];
    }

    int index = 0;
    for (int i = min; i <= max; i++) {
        while (count[i - min] > 0) {
        nums[index] = i;
        ++index;
        --count[i - min];
        }
    }
}

2. Bucket Sort

Time: O(n + k), Space: O(n)

3. Quick Sort

Time: O(nlogn), Space: O(logn)

  • Quick Select (Find the Kth Largest/Smallest Number)

4. Merge Sort

Time: O(nlogn), Space: O(n)

5. Questions

Last updated

Was this helpful?