假期简单算法--快排

来源:互联网 发布:大兴区区长辞职 知乎 编辑:程序博客网 时间:2024/05/15 07:29
/**    简单算法--快排    递归实现,非稳定排序,当全部逆序,时间复杂度为O(n^2)*/#include <iostream>const int SIZE = 10;using namespace std;void Qsort(int data[],int low,int high){    if(low >= high ){        return;    }    int first = low;    int last = high;    int key = data[first];//键值    while (first < last){        while (first < last && data[last] >= key)            last--;        data[first] = data[last];        while (first < last && data[first] <= key)            first++;        data[last] = data[first];    }    data[first] = key;//数列有序键值所在位置    //键值前方递归快排    Qsort(data,low,first-1);    //键值后方递归快排    Qsort(data,first+1,high);}int main(){    int data[SIZE]={9,8,7,6,5,4,3,2,1,0};    Qsort(data,0,SIZE-1);    for(int i = 0 ; i < SIZE ; i++){        cout<<data[i]<<" ";    }    cout<<endl;    return 0;}

0 0