1 package quicksort;
2
3 import org.junit.Test;
4
5 import java.util.Arrays;
6
7 public class QuickSort {
8
9 @Test
10 public void setUp() throws Exception {
11 int[] arr = new int[]{32, 26, 83, 55, 42, 67, 73, 92, 60};
12 quickSort(arr, 0, arr.length - 1);
13 System.out.println(Arrays.toString(arr));
14 }
15
16 public void quickSort(int[] arr, int low, int high) {
17 if (low < high) {
18 int temp = quickPartition(arr, low, high);
19 quickSort(arr, low, temp - 1);
20 quickSort(arr, temp + 1, high);
21 }
22 }
23
24 public int quickPartition(int[] arr, int low, int high) {
25 int key = arr[low];
26 while (low < high) {
27 while (low < high && arr[high] >= key) {
28 high--;
29 }
30 arr[low] = arr[high];
31 while (low < high && arr[low] <= key) {
32 low++;
33 }
34 arr[high] = arr[low];
35 }
36 arr[low] = key;
37 return low;
38 }
39 }