- public class Demo135{
- public static void main(String []args){
- int arr[]={-1,-5,6,2,0,9,-3,-8,12,7};
- QuickSort qs=new QuickSort();
- qs.sort(0, arr.length-1, arr);
- //输出最后结果
- for(int i=0;i<arr.length;i++){
- System.out.print(arr[i]+"\t");
- }
- }
- }
- class QuickSort{
- public void sort(int left,int right,int [] arr){
- int l=left;
- int r=right;
- int pivot=arr[(left+right)/2];//找中间值
- int temp=0;
- while(l<r){
- while(arr[l]<pivot) l++;
- while(arr[r]>pivot) r--;
- if(l>=r) break;
- temp=arr[l];
- arr[l]=arr[r];
- arr[r]=temp;
- if(arr[l]==pivot) --r;
- if(arr[r]==pivot) ++l;
- }
- if(l==r){
- l++;
- r--;
- }
- if(left<r) sort(left,r,arr);
- if(right>l) sort(l,right,arr);
- }
- }
复制代码
|
|