快速排序算法应用的比较广泛,是一个非常经典的排序算法,
public class QuickSort {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
QuickSort quick=new QuickSort();
Integer []arrays={98,4,7,9,12,98,34,344,988,654,43,566,7,9,6,87,89,65,789,96};
quick.sort(arrays);
for (int i = 0; i < arrays.length; i++) {
System.out.println(arrays[i]);
}
}
public int partition(Integer[] arrays,int low,int hign){
int i = low,j=hign+1;
while(true){
while(arrays[++i]<arrays[low]){
if(i==hign){
break;
}
}
while(arrays[--j]>arrays[low]){
if(j==low){
break;
}
}
if(i>=j){
break;
}
swap(arrays,i,j);
}
swap(arrays,low,j);
return j;
}
private void swap(Integer[] arrays, int i, int j) {
int temp=arrays[i];
arrays[i]=arrays[j];
arrays[j]=temp;
}
public void sort(Integer [] arrays){
sort(arrays,0,arrays.length-1);
}
private void sort(Integer []array,int i,int j){
if(i>=j)
return;
int index=partition(array, i, j);
sort(array, i, index-1);
sort(array, index+1, j);
}
}