计蒜客-快排算法

来源:互联网 发布:淘宝水货单反机身 编辑:程序博客网 时间:2024/05/16 08:27

  快速排序是一种经典的分治算法,其实也很简单,题目给出的算法有一点小错误而已,修正之后的代码如下,自行理解。

#include <iostream>#define N 10  //定义常量N=10 using namespace std;int qsort(int p[], int start, int end){    int temp;    int i = start;    int j = end;    int mid = p[(start + end) / 2];    while(i < j)    {        while(p[i] < mid)            i++;        while(p[j] > mid)            j--;        if(i <= j)        {            temp = p[i];            p[i] = p[j];            p[j] = temp;            i++;            j--;        }    }    if(j > start)        qsort(p, start, j);    if(i < end)         qsort(p, i, end);}int Printarray(int data[], int size){    int i;    for(i = 0; i < size; i++)       cout<<data[i]<<" ";    cout<<endl;}int main(){    int array[N];    for(int i = 0; i < N; i++)    cin>>array[i];    qsort(array, 0, N-1);    Printarray(array, N);    return 0;}


原创粉丝点击