快速排序是冒泡排序(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);
}
原文地址:http://blog.csdn.net/chfe007/article/details/44133859