欢迎使用CSDN-markdown编辑器

来源:互联网 发布:高考奇迹知乎 编辑:程序博客网 时间:2024/06/06 18:31

1521.排序
Time Limit: 1000 MS Memory Limit: 32768 KB
Total Submission(s): 112 Accepted Submission(s): 42
Description
将输入的数从小到大排序。
Input
输入数据n(1<=n<=1000000)

接下来输入n个数据

(多组输入数据)
Output
按格式输出排序后的n个数。
Sample Input
5
5 3 4 6 8
Sample Output
3 4 5 6 8

快速排序法

#include<cstdio>#include<algorithm>#include<iostream>#include<cmath>#include<iomanip>#include<string>#include<cstring>using namespace std;int a[1000001];void qsort(int a[], int low, int high){    if(low>=high){        return ;    }    int l = low;    int r = high;    int key = a[low];    while(l<r)    {        while(a[r]>=key && l<r)        {            r--;        }        if(l<r){            a[l]=a[r];        }        while(a[l]<=key && l<r)        {            l++;        }        if(l<r){            a[r]=a[l];        }    }    a[l]=key;    qsort(a, low, l-1);    qsort(a, l+1, high);}int main(){    int n;    while(scanf("%d", &n)!=EOF)    {        for(int i=0; i<n; i++){            scanf("%d", &a[i]);        }        qsort(a, 0, n-1);        for(int i=0; i<n-1; i++){            printf("%d ", a[i]);        }        printf("%d", a[n-1]);        printf("\n");        memset(a, 0, sizeof(a));    }    return 0;}