#include <iostream>
using namespace std;
//快速排序,最差时间复杂度O(n^2),
//最好时间复杂度O(nlog2N),平均时间复杂度O(nlog2N)
//不稳定,空间复杂度O(nlog2N)
void quick_Sort(int a[], int, int);
void quick_Sort(int s[], int l, int r) {
if (l < r) {
int i = l, j = r, x = s[l];//s[l]为数组第一个数,即基数
while (i < j) {
while (i < j && s[j] >= x)
j--;
if (i < j)
s[i++] = s[j];
while (i < j && s[i] < x)
i++;
if (i < j)
s[j--] = s[i];
}
s[i] = x;
quick_Sort(s, l, r - 1);
quick_Sort(s, l + 1, r);
}
}
int main() {
int array[] = { 34.65,12,43,67,5,78,10,3,70 }, k;
int len = sizeof(array) / sizeof(int);
cout << "The orginal arrayare:" << endl;//第一行
for (k = 0; k < len; k++) {
cout << array[k] << ",";//第二行
}
cout << endl;
quick_Sort(array, 0, len - 1);//先调用函数重新排列数组
cout << "The sorted arrayare:" << endl;//第三行
for (k = 0; k < len; k++) {
cout << array[k] << ",";//第四行
}
cout << endl;
cin.get();
}
运行结果: