Pagini recente » Cod sursa (job #1750796) | Cod sursa (job #2411540) | Ciorna | Cod sursa (job #1777095) | Cod sursa (job #1009249)
#include<fstream>
using namespace std;
int v[500001],z[500001];
//Sortare prin interclasare
void interclasare(int i,int j)
{
int m=(i+j)/2,p=i,q=m+1,k=0;
while(p<=m && q<=j)
if(v[p]<v[q])z[k++]=v[p++];
else z[k++]=v[q++];
while(p<=m)z[k++]=v[p++];
while(q<=j)z[k++]=v[q++];
for(p=0,q=i;p<k;++q,++p)
v[q]=z[p];
}
void MergeSort(int i,int j)
{
if(i<j)
{
int m=(i+j)/2;
MergeSort(i,m);
MergeSort(m+1,j);
interclasare(i,j);
}
}
int main()
{
ifstream f("algsort.in");
ofstream g("algsort.out");
int i;
f>>v[0];
for(i=1;i<=v[0];++i)
f>>v[i];
MergeSort(1,v[0]);
for(i=1;i<=v[0];g<<v[i]<<" ",++i);
f.close();
g.close();
return 0;
}