Pagini recente » Cod sursa (job #2651948) | Cod sursa (job #2124434) | Cod sursa (job #826149) | Cod sursa (job #998332) | Cod sursa (job #373101)
Cod sursa(job #373101)
#include <cstdio>
using namespace std;
int a[500010],n;
void read(){
scanf("%d",&n);
for(int i=0;i<n;++i)
scanf("%d",a+i);
}
void write(){
for(int i=0;i<n;++i)
printf("%d ", *(a+i));
}
void qs(int st,int dr){
if(st<dr){
int i=st,j=dr,d=(st+dr)>>1,aux;
aux=a[st]; a[st] = a[d]; a[d]=aux;
d=0;
while(i<j){
if(a[i]>a[j]){
aux=a[i], a[i]=a[j], a[j]=aux;
d=1-d;
}
i+=d;
j-=1-d;
}
qs(st,i-1);
qs(i+1,dr);
}
}
int main(){
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
read();
qs(0,n-1);
write();
return 0;
}