提供一个比较简介的快排代码
import java.util.Random;
public class QuickSort {
//递归
static void quicksort(int n[], int left , int right) {
int dp ;
if (left < right) {
dp = partition(n, left, right);
quicksort(n, left, dp - 1);
quicksort(n, dp + 1, right);
}
}
//一趟一排序
static int partition(int n[], int left, int right ) {
int pivot = n[left];
while (left < right) {
while (left < right && n[ right] >= pivot )
right--;
if (left < right)
n[ left++] = n [right ];
while (left < right && n[ left] <= pivot )
left++;
if (left < right)
n[ right--] = n [left ];
}
n[ left] = pivot ;
return left ;
}
//测试
public static void main(String [] args ) {
// TODO Auto-generated method stub
Random random = new Random();
int[] a = new int[100000];
for(int i =0; i<100000; i++){
a[ i] = random.nextInt(1000000);
}
//int a[] = {1,3,2,6,4,5,2,3,8,9,5,6,4,3};
quicksort(a,0,a.length-1);
for(int x : a){
System. out.println(x + " ");
}
}
}