数据结构实验之排序八:快速排序

    xiaoxiao2021-12-14  16

    Problem Description

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

    Input

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

    Output

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

    Example Input

    8 49 38 65 97 76 13 27 49

    Example Output

    13 27 38 49 49 65 76 97

    Hint

    源代码: #include<stdio.h> int a[100005]; int paixu(int L,int R) { if(L>=R) { return 0; } int i=L,j=R; int flag=a[L]; while(i<j) { while(i<j&&flag<=a[j]) { j--; } a[i]=a[j]; while(i<j&&flag>=a[i]) { i++; } a[j] = a[i]; } a[i]=flag; paixu(L,i-1); paixu(i+1,R); } int main() { int n,i,j; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) { scanf("%d",&a[i]); } paixu(0,n-1); for(j=0;j<n;j++) { if(n-1!=j) printf("%d ",a[j]); else printf("%d\n",a[j]); } } }
    转载请注明原文地址: https://ju.6miu.com/read-963969.html

    最新回复(0)