PAT(Basic Level)_1045_快速排序

来源:互联网 发布:ubuntu关闭apache服务 编辑:程序博客网 时间:2024/06/07 06:19
#include<stdio.h>#include<limits.h>#include<stdlib.h>int cmp(const void *a,const void *b){    return *((int*)a)-*((int*)b);}int main(){    int nums[100000],n;    scanf("%d",&n);    for(int i=0;i<n;i++){        scanf("%d",nums+i);    }    int flag[100000]={};    int lmax=0;    for(int i=0;i<n;i++){        if(nums[i]>=lmax){            lmax=nums[i];        }else{            flag[i]|=1;        }    }    int rmin=INT_MAX;    for(int i=n-1;i>=0;i--){        if(nums[i]<=rmin){            rmin=nums[i];        }else{            flag[i]|=1;        }    }    int cnt=0,sel[100000];    for(int i=0;i<n;i++){        if(!flag[i]){            sel[cnt++]=nums[i];        }    }    qsort(sel,cnt,sizeof(int),cmp);    printf("%d\n",cnt);    for(int i=0;i<cnt;i++){        if(i) putchar(' ');        printf("%d",sel[i]);    }    putchar('\n');    return 0;}
原创粉丝点击