Home [Data Sturcture] Quick sort
Post
Cancel

[Data Sturcture] Quick sort

What is quick sort?

1
2
Make a pivot which means middle index to divide array.
It is based on divide and conquer algorithm 

quick-sort


Implementation

⭐️ The point

  • quickSort() : main
  • sort()
  • partition()
  • swap()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class QuickSorter {

    // main
    public static void quickSort(int[] arr) {
        sort(arr, 0, arr.length - 1);
    }

    private static void sort(int[] arr, int low, int high) {
        if (low >= high) return;

        int mid = partition(arr, low, high); // divide
        sort(arr, low, mid - 1); // 0 ~ mid - 1
        sort(arr, mid, high); // mid ~ arr.length - 1
    }

    private static int partition(int[] arr, int low, int high) {
        
        int pivot = arr[(low + high) / 2];
        
        while (low <= high) {
            while (arr[low] < pivot) low++;
            while (arr[high] > pivot) high--;
            if (low <= high) {
                swap(arr, low, high);
                low++;
                high--;
            }
        }

        return low;
    }

    private static void swap(int[] arr, int i, int j) {
        int tmp = arr[i];
        arr[i] = arr[j];
        arr[j] = tmp;
    }
}
This post is licensed under CC BY 4.0 by the author.

[Data Sturcture] sort methods

[Algorithm] Dynamic programming

Comments powered by Disqus.