快速排序

来源:互联网 发布:双阳网络 编辑:程序博客网 时间:2024/05/22 06:48


 快速排序



Time Limit: 1000MS Memory Limit: 65536KB
SubmitStatistic

Problem Description

给定N(N≤10^5)个整数,要求用快速排序对数据进行升序排列,注意不得使用STL。
 

Input

 连续输入多组数据,每组输入数据第一行给出正整数N(≤10^5),随后给出N个整数,数字间以空格分隔。

Output

 输出排序后的结果,数字间以一个空格间隔,行末不得有多余空格。

Example Input

849 38 65 97 76 13 27 49

Example Output

13 27 38 49 49 65 76 97

Hint

 

Author

         

#include<stdio.h> ///3491—快速排序int a[100001];void qssort(int a[],int left,int right){    int k=a[left],i=left,j=right;    if(left>=right) return ;    else    {        while(i<j)        {            while(i<j&&a[j]>=k)                j--;            a[i]=a[j];            while(i<j&&a[i]<=k)                i++;            a[j]=a[i];        }        a[i]=k;        qssort(a,left,i-1);        qssort(a,i+1,right);    }}int main(){    int i,n;    while(scanf("%d",&n)!=EOF)    {        for(i=0; i<n; i++)            scanf("%d",&a[i]);        qssort(a,0,n-1);        for(i=0; i<n-1; i++)            printf("%d ",a[i]);        printf("%d\n",a[n-1]);    }    return 0;}

0 0
原创粉丝点击