您的位置:首页 > 其它

算法练习——快速排序

2016-11-30 14:01 363 查看
时间限制: 2  S        内存限制: 128  MB


题目描述:

输入n个整型数,让你把这n个数排成由小到大的顺序并输出。


输入:

首先输入一个数n(1<=n<=100000)然后输入n个数a1,a2,....an;其中ai为int型整数。  


输出:

输出n排序后的结果,每个数用一个空格隔开,最后一个数后输出一个换行不加空格。


样例输入:

3
3 2 1



样例输出:

1 2 3


Language: C++

#include <iostream>

using namespace std;

void quickSort(int a[], int n){
int i=0;
int j=n-1;
int temp = a[0];
if(n>1)
{
while(i != j){
for(;i<j;j--){
if(a[j]<temp){
a[i]=a[j];
break;
}
}
for(;i<j;i++){
if(a[i]>temp){
a[j]=a[i];
break;
}
}
a[i]=temp;
}
quickSort(a,i);
quickSort(a+i+1,n-i-1);
}

}
int main(){
int n;
cin>>n;
int a
;
for(int i=0;i<n;i++){
cin>>a[i];
}

quickSort(a,n);
for(int i = 0;i < n;i++){
if(i!= n-1){
cout << a[i] << " ";
}
else{
cout<<a[i]<<endl;
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: