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

    xiaoxiao2021-03-25  106

    点击获取原题链接

    数据结构实验之排序八:快速排序 Time Limit: 1000MS Memory Limit: 65536KB 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 Author #include <bits/stdc++.h> using namespace std; int a[100000+20]; void sort(int left,int right)///手写快拍 { if(left>=right)return; int i=left,j=right; int x=a[left]; while(i<j) { while(i<j && a[j]>=x)j--; a[i]=a[j]; while(i<j && a[i]<=x)i++; a[j]=a[i]; } a[i]=x; sort(left,i-1);///递归排序左边 sort(i+1,right); } int main() { int n; while( cin>>n) { for(int i=0;i<n;i++) { cin>>a[i]; } sort(0,n-1); for(int i=0;i<n;i++) { cout<<a[i]; if(i==n-1) { cout<<endl; } else cout<<' '; } } return 0; } /*************************************************** User name: Result: Accepted Take time: 0ms Take Memory: 172KB Submit time: 2017-03-08 19:46:24 ****************************************************/
    转载请注明原文地址: https://ju.6miu.com/read-6796.html

    最新回复(0)