// 快速排序,原理:通過選定一個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);
}
}
排序算法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.