Pagini recente » Cod sursa (job #132052) | Cod sursa (job #1082487) | Cod sursa (job #2484074) | Cod sursa (job #2105545) | Cod sursa (job #2406928)
#include<iostream>
#include<algorithm>
#include<fstream>
using namespace std;
int n,v[5000005],c[5000005];
void merget(int st,int dr){
int mij=(st+dr)/2;
if(dr-st+1>2){
merget(st,mij);
merget(mij+1,dr);
}
else{
if(v[st]>v[dr]) swap(v[st],v[dr]);
return;
}
int i=st,j=mij+1,r=1;
while(i<=mij && j<=dr){
if(v[i]<v[j]){
c[r]=v[i];
i++;
}
else{
c[r]=v[j];
j++;
}
r++;
}
while(i<=mij){
c[r]=v[i];
r++;
i++;
}
while(j<=dr){
c[r]=v[j];
r++;
j++;
}
r=1;
for(int x=st;x<=dr;x++){
v[x]=c[r];
r++;
}
}
int main(){
ifstream fin("algsort.in");
ofstream fout("algsort.out");
fin>>n;
for(int i=1;i<=n;i++){
fin>>v[i];
}
merget(1,n);
for(int i=1;i<=n;i++){
fout<<v[i]<<" ";
}
return 0;
}