package com.demo.sort;
public class QuickSort {
public static void main(String[] args) {
int [] t= {6,5,4,2,1,8,11,9,10};
QuickSort obj = new QuickSort();
obj.quickSort(0, t.length-1, t);
for (int i : t) {
System.out.print(i+" ");
}
}
public void quickSort(int low,int high ,int[] arr) {
// rec 出口
if(low>high) {
return;
}
System.out.println("quick sort start low ="+low +" high = "+high);
// 保存指针
int i =low ,j = high,temp;
int pivot = arr[i];
while(i<j) {
while(arr[j] >= pivot && i<j) {
j--;
}
while(arr[i]<= pivot &&i<j) {
i++;
}
//swap
if(i<j) {
System.out.println("swap");
temp = arr [i];
arr[i] = arr[j];
arr[j] = temp;
}
}
// 替换基数
arr[low]=arr[i];
arr[i] = pivot;
quickSort(low, j-1, arr);
quickSort(j+1, high, arr);
}
}