package quickSort;
import java.util.Arrays;
import java.util.Random;
public class QuickSort {
public static void main(String[] args) {
int arrLen = 10 ;
int [] arr = new int [arrLen];
if(createData(arr,arrLen,1,100)){
System.out.println("will sorted :");
System.out.println(Arrays.toString(arr));
quickSort(arr,0,arrLen-1);
System.out.println("sorted :");
System.out.println(Arrays.toString(arr));
}
}
private static void quickSort(int[] arr, int left, int right) {
int index ,j ;
if(left < right){
index = division(arr,left,right);//seperate
quickSort(arr, left, index-1);//sort for two side
quickSort(arr, index+1, right);
}
}
private static int division(int[] arr, int left, int right) {
int base = arr[left];//基准元素
while(left<right){
while(left < right && arr[right] > base)
--right;//从右向左找第一个比基准小的元素
arr[left] = arr[right];
while(left < right && arr[left] < base)
++left;//从左向右找第一个比基准大的元素
arr[right] = arr[left];
}
arr[left] = base;
return left;
}
private static boolean createData(int[] arr, int arrLen, int i, int j) {
for(int index = 0; index< arrLen ; index ++){
if(index == arrLen){
return true;
}
arr[index] = i+new Random().nextInt(j);
}
return true;
}
}
QuickSort
最新推荐文章于 2022-07-02 23:52:25 发布