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 }