java快速排序

来源:互联网 发布:杭州java培训哪家好 编辑:程序博客网 时间:2024/05/16 00:27
package com.datastructor;


public class FastSorted {


/**
* @param args
* 快速排序
*/
public static void main(String[] args) {

     int[] array={23,34,45,56,78,12,16,17};
     recQuickSort(0,array.length-1,array);
     for(int i=0;i<array.length;i++){
    System.out.print(array[i]+" ");
     }
     
}
    public static void recQuickSort(int left,int right,int [] array){
    if(right-left<=0)
    return;
    else{
    int pivot=array[right];
    int partition=partitionIt(left,right,pivot,array);
    recQuickSort(left,partition-1,array);
    recQuickSort(partition+1,right,array);
    }
    }
private static int partitionIt(int left, int right, int pivot,int[] array) {
int leftPtr=left-1;
int rightPtr=right;
while(true){
while(array[++leftPtr]<pivot){

};
while(rightPtr>0 && array[--rightPtr]>pivot){

};
if(leftPtr>=rightPtr)
break;
else{
swap(leftPtr,rightPtr,array);
}

}
swap(leftPtr,right,array);
return leftPtr;
}
private static void swap(int leftPtr, int rightPtr, int[] array) {
int temp=array[leftPtr];
array[leftPtr]=array[rightPtr];
array[rightPtr]=temp;
}
}
原创粉丝点击