TimeLimit: 1000MSMemory Limit: 65536KB
SubmitStatistic
给定N个长整型范围内的整数,要求输出以给定数据中第一个数为枢轴进行一趟快速排序之后的结果。
Input
连续输入多组数据,每组输入数据第一行给出正整数N(N< = 10^5),随后给出N个长整型范围内的整数,数字间以空格分隔。
Output
输出一趟快速排序后的结果,数字间以一个空格间隔,行末不得有多余空格。
ExampleInput
8
4938 6597 76 13 27 49
ExampleOutput
2738 1349 76 97 65 49
Hint
Author
xam
#include <iostream>#include<bits/stdc++.h>using namespace std;int a[102];void quicksort(int l,int r){ int i,j; if(l>r) return; i = l; j = r; int temp = a[l]; while(i!=j) { while(a[j]>=temp&&i<j) { j--; } a[i] = a[j]; while(a[i]<=temp&&i<j) { i++; } a[j] = a[i]; //if(i<j) //{ //swap(a[i],a[j]); //} } a[i] = temp; //swap(a[l],a[i]); // quicksort(l,i-1); //quicksort(i+1,r); return ;}int main(){ int n; while(~scanf("%d",&n)) { for(int i=0;i<n;i++) { scanf("%d",&a[i]); } quicksort(0,n-1); int top = 1; for(int i=0;i<n;i++) { if(top)top=0; else printf(" "); printf("%d",a[i]); } cout<<endl; } return 0;}/***************************************************User name: jk160505徐红博Result: AcceptedTake time: 0msTake Memory: 156KBSubmit time: 2017-02-22 19:53:55****************************************************/
新闻热点
疑难解答