// 快速排序,原理:通过选定一个key,i=0;j=n-1;第一次排序时,将i的值list[i]从前往后找比key小的值,将j的值list[j]从后往前找比key大的值
// 找到则与key调换位置,直到i与j相等;此时:key左边的值都比其小;key右边的值都比其大;
public static void QuickSort(int[] list, int start, int end) {
int i = start;
int j = end;
int tmp;
if ((list == null) || (list.length == 0)) {
return;
}
while (i < j) {
while ((i < j) && list[i] <= list[j]) {
j--;
}
if (i < j) {
tmp = list[i];
list[i] = list[j];
list[j] = tmp;
}
while (i < j && list[i] < list[j]) {
i++;
}
if (i < j) {
tmp = list[i];
list[i] = list[j];
list[j] = tmp;
}
}
if (start < end) {
QuickSort(list, start, i - 1);
QuickSort(list, i + 1, end);
}
}
排序算法
最新推荐文章于 2023-07-05 09:31:50 发布