import java.util.Arrays;
/**
* Created by Enzo Cotter on 2018/11/28.
*/
public class Work2_1 {
public static void main(String[] args){
int[] arr = {6, 9, 5, 7, 8, 1, 2, 3, 4};
System.out.println("需要排序的数组为:" + Arrays.toString(arr));
long startTime = System.nanoTime();
quicksort(arr, 0, arr.length - 1);
long endTime= System.nanoTime();
System.out.println("第一个元素为枢纽的排序结果:" + Arrays.toString(arr));
System.out.println("第一个元素为枢纽的算法耗时为:" + (endTime - startTime) + "ns");
}
public static void quicksort(int[] arr,int left,int right){
int once = once(arr,left,right); //获得
if (once > left){
quicksort(arr,left,once-1);
}
if (once < right){
quicksort(arr,once+1,right);
}
}
public static int once(int[] arr,int left,int right){
int temp = arr[left];
while (left < right){
while (left < right && arr[right] > temp){
--right;
}
arr[left] = arr[right]; //把比基准temp大的值移到后面
while (left < right && arr[left] < temp){
++left;
}
arr[right] = arr[left]; //把比基准temp小的值移到前面
}
arr[left] = temp;
return left;
}
}