private static int[] in; //待排数组0位置为空,因为该算法可能出现j小于0
//的情况,预留空间。输入数据时从1开始。
//打乱in的原始顺序,以防N^2
private static void swap(int a, int b) {
int tmp = in[a];
in[a] = in[b];
in[b] = tmp;
}
public static void quickSort(int s, int e) {// parameters: start and end
int i = s;
int j = e;
int pivot = in[(s + e) / 2]; //pivot是一个数,(s + e) / 2对应的值随时改变
while(i <= j){
while(in[i] < pivot){
i++;
}
while(in[j] > pivot){
j--;
}
if(i <= j){
swap(i, j);
i++;
j--;
}
}
if(s < j) quickSort(s, j);
if(i < e) quickSort(i, e);
}
快排JAVA实现
最新推荐文章于 2024-11-08 14:58:24 发布