
快速排序的排序流程--来自百度百科
首先设定一个分界值,通过该分界值将数组分成左右两部分。
java代码实现
public class MainTest {
private static int a[]=new int[] {156,256,1,5,9,7,3,2,6,4,8,9,5,2,8};
public static void main(String args[]) {
quicksort(0,a.length-1);
for(int i=0;i<a.length;i++) {
System.out.print(a[i]+" ");
}
}
/**
* 快速排序
* @param left
* @param right
*/
public static void quicksort(int left,int right) {
int i=left,j=right,temp=a[left];
while(i<j) {
while(i<j&&a[j]>temp) j--;
while(i<j&&a[i]<temp) i++;
if(i<j&&a[i]==a[j]) i++;
else {
int t=a[i];
a[i]=a[j];
a[j]=t;
}
}
if(i-1>left) quicksort(left,i-1);
if(j+1<right) quicksort(j+1, right);
}
}