Pagini recente » Cod sursa (job #3254424) | Cod sursa (job #305648) | Cod sursa (job #2663419) | Cod sursa (job #146391) | Cod sursa (job #1333051)
#include <fstream>
#define DIM 500002
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int N,v[DIM];
void interclasare(int p,int m,int u){
int b[u-p+2],i=p,j=m+1,k=0;
while(i<=m && j<=u)
if(v[i]<v[j])
b[++k]=v[i++];
else
b[++k]=v[j++];
for(;i<=m;i++)
b[++k]=v[i];
for(;j<=u;j++)
b[++k]=v[j];
for(i=p;i<=u;i++)
v[i]=b[i-p+1];
}
void mergesort(int p,int u){
if(p==u)
return ;
int mid=(p+u)>>1;
mergesort(p,mid);
mergesort(mid+1,u);
interclasare(p,mid,u);
}
int main(){
fin>>N;
for(int i=1;i<=N;i++)
fin>>v[i];
mergesort(1,N);
for(int i=1;i<=N;i++)
fout<<v[i]<<" ";
fin.close();fout.close();
return 0;
}