Pagini recente » Cod sursa (job #682137) | Cod sursa (job #2136351) | Cod sursa (job #1765219) | Cod sursa (job #2333816) | Cod sursa (job #1023408)
#include<iostream>
#include<fstream>
using namespace std;
int v[500001],b[500001];
void merge(int i,int j,int n)
{int mij,z,s;
mij=j;
z=i;
s=i;
while((i<mij) && (j<=n))
{ if(v[i]<v[j])
{b[z]=v[i];
i++;
}
else
{ b[z]=v[j];
j++;
}
z++;
}
while(i<mij)
{b[z]=v[i];
i++;
z++;
}
while(j<=n)
{b[z]=v[j];
j++;
z++;
}
for(z=s;z<=n;z++)
v[z]=b[z];
}
void divide(int li,int ls)
{int m;
if(li<ls)
{m=(li+ls)/2;
divide(li,m);
divide(m+1,ls);
merge(li,m+1,ls);
}
}
int main()
{int n;
ifstream f("algsort.in");
ofstream g("algsort.out");
f>>n;
for(int i=0;i<n;i++)
f>>v[i];
divide(0,n-1);
for(int i=0;i<n;i++)
g<<v[i]<<" ";
f.close();
g.close();
return 0;
}