Pagini recente » Cod sursa (job #923461) | Cod sursa (job #3275639) | Cod sursa (job #2707018) | Cod sursa (job #2080065) | Cod sursa (job #3124638)
#include <bits/stdc++.h>
#define mod 666013
using namespace std;
int n,v[500005],s[500005],d[500005],ns,nd;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
void quicksort(int st, int dr){
if (st>=dr) return;
ns=0;
nd=0;
int pivot=v[(st+dr)/2];
for (int i=st;i<=dr;i++){
if (i==(st+dr)/2) continue;
if (v[i]<pivot){
ns++;
s[ns]=v[i];
}
else{
nd++;
d[nd]=v[i];
}
}
for (int i=1;i<=ns;i++) v[st+i-1]=s[i];
v[st+ns]=pivot;
for (int i=1;i<=nd;i++) v[st+ns+i]=d[i];
quicksort(st,st+ns-1);
quicksort(st+ns+1,dr);
}
int main(){
fin>>n;
for (int i=1;i<=n;i++) fin>>v[i];
quicksort(1,n);
for (int i=1;i<=n;i++) fout<<v[i]<<" ";
}