Pagini recente » Cod sursa (job #428401) | Cod sursa (job #797521) | Cod sursa (job #1622635) | Cod sursa (job #3183001) | Cod sursa (job #1011803)
#include <fstream>
using namespace std;
unsigned v[500000],c[500000];
void intercls(unsigned *v, unsigned i_s, unsigned f_s, unsigned i_d, unsigned f_d)
{unsigned i=1,j,s_s=i_s;
while(i_s<=f_s && i_d <= f_d)
if(v[i_s]<v[i_d]) c[i++]=v[i_s++];
else c[i++]=v[i_d++];
while(i_s<=f_s) c[i++]=v[i_s++];
while(i_d <= f_d) c[i++]=v[i_d++];
for(i=s_s,j=1;i<=f_d;i++,j++) v[i]=c[j];
}
void merge_sort(unsigned *v,unsigned s, unsigned d)
{
if(s==d) return;
unsigned mij=(s+d)/2;
merge_sort(v,s,mij);
merge_sort(v,mij+1,d);
intercls(v,s,mij,mij+1,d);
}
int main()
{unsigned n;
ifstream f("algsort.in"); f>>n;
for(unsigned i=1;i<=n;i++) f>>v[i];
f.close();
merge_sort(v,1,n);
ofstream g("algsort.out");
for(unsigned i=1;i<=n;i++)
g<<v[i]<<" ";
g.close();
return 0;}