U50528.new
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
输出a
说明/提示
//快速排序
#include<bits/stdc++.h>
using namespace std;
int n,a[10010];
int p(int a[],int l,int r){
int k=a[l];
while(l<r){
while(l<r && a[r]>=k) r--;
a[l]=a[r];
while(l<r && a[l]<=k) l++;
a[r]=a[l];
}
a[l]=k;
return l;
}
void qs(int a[],int l,int r){
if(l>=r) return ;
int pos=p(a,l,r);
qs(a,l,pos-1);
qs(a,pos+1,r);
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
qs(a,1,n);
for(int i=1;i<=n;i++)cout<<a[i]<<' ';
}
//归并排序
#include<iostream>
using namespace std;
int n , a[1010] , temp[1010];
void m(int l , int r){
if(l==r) return;
int mid=(l+r)/2;
m(l,mid);
m(mid+1,r);
int i = l, j = mid + 1, k = l;
while(i <=mid && j <= r){
if(a[i] <= a[j]) temp[k++] = a[i++];
else temp[k++] = a[j++];
}
while(i <= mid) temp[k++] = a[i++];
while(j <= r) temp[k++] = a[j++];
for(int i=l;i<=r;i++) a[i]=temp[i];
}
int main(){
cin >> n;
for(int i=1;i<=n;i++) cin>>a[i];
m(1,n);
for(int i=1;i<=n;i++) cout<<a[i]<<" ";
return 0;
}