快速排序JAVA版–来源网络资源
public class QuickSort {
private long[] theArray;
private int nElement;
public QuickSort(int max){
theArray=new long[max];
nElement=0;
}
public void insert(long value){
theArray[nElement]=value;
nElement++;
}
public int size(){
return nElement;
}
public void display(){
System.out.print("A=");
for (int i=0;i<nElement;i++){
System.out.print(theArray[i]+" ");
}
System.out.println(" ");
}
/**
* 划分
* @param left
* @param right
* @param pivot
* @return
*/
public int partitionIt(int left,int right,long pivot){
int leftPrt=left-1;
int rightPrt=right;
while (true) {
while (theArray[++leftPrt] < pivot) ;
while (rightPrt > 0 && theArray[--rightPrt] > pivot) ;
if (leftPrt >= rightPrt)
break;
else
swap(leftPrt,rightPrt);
}
swap(leftPrt,right);
return leftPrt;
}
public void swap(int dex1,int dex2){
long temp;
temp=theArray[dex1];
theArray[dex1]=theArray[dex2];
theArray[dex2]=temp;
}
/**
* 快速排序
*/
public void recQuickSort(int left,int right){
if (right-left <= 0){
return;
}else {
long pivot=theArray[right];
int partition=partitionIt(left,right,pivot);
recQuickSort(left,partition-1);
recQuickSort(partition+1,right);
}
}
public static void main(String[] args) {
int maxSize=8;
QuickSort arrayPar;
arrayPar=new QuickSort(maxSize);
for (int i=0;i<maxSize;i++){
long n= (long) (Math.random()*199);
arrayPar.insert(n);
}
arrayPar.display();
System.out.print("quickSort is\n");
int size=arrayPar.size();
arrayPar.recQuickSort(0,size-1);
arrayPar.display();
}
}