小白成长之路(6)--快速排序

来源:互联网 发布:记考勤软件下载 编辑:程序博客网 时间:2024/05/22 06:06
#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();}

运行结果:

这里写图片描述

原创粉丝点击