快速排序是冒泡排序(http://blog.csdn.net/chfe007/article/details/44133349)的改進算法,本文選擇第一個元素作爲軸值,從小到達排序。
快速排序算法的一趟排序如下:
int Partion (int data[], int first, int end) {
int i = first, j = end;
int privot = data[i];
while (i < j) {
while (i < j && data[j] > privot) --j;
data[i] = data[j];
while (i < j && data[i] < privot) ++i;
data[j] = data[i];
}
data[i] = privot;
return i;
}
完成快速排序算法的功能函數如下:
void QSort (int data[], int start, int end) {
while (start < end) {
int mid = Partion(data, start, end);
QSort (data, start, mid - 1);
QSort (data, mid + 1, end);
}
}
調用快速算法就很簡單了:
void QuickSort (int data[], int n) {
QSort(data, 1, n);
}