Pagini recente » Cod sursa (job #2137994) | Cod sursa (job #707548) | Cod sursa (job #2204045) | Cod sursa (job #2945449) | Cod sursa (job #1280770)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int i,n,v[500001],c[500001],j,u,p;
void interclaseaza(int p,int m,int u){
int i=p,j=m+1,k=p-1;
while(i<=m && j<=u){
if(v[i]<v[j]){
c[++k]=v[i++];
}
else{
c[++k]=v[j++];
}
}
for(;i<=m;i++){
c[++k]=v[i];
}
for(;j<=u;j++){
c[++k]=v[j];
}
for(i=p;i<=u;i++){
v[i]=c[i];
}
}
void sorteaza(int p,int u){
if(p<u){
int m=(p+u)/2;
sorteaza(p,m);
sorteaza(m+1,u);
interclaseaza(p,m,u);
}
}
int main(){
fin>>n;
for(i=1;i<=n;i++){
fin>>v[i];
}
sorteaza(1,n);
for(i=1;i<=n;i++){
fout<<v[i]<<" ";
}
return 0;
}