Pagini recente » Cod sursa (job #1399322) | Cod sursa (job #2871332) | Clasament ms98 | Cod sursa (job #1062062) | Cod sursa (job #1581195)
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n,v[500009],b[500010],k;
void interclasare (int v[],int b[],int p, int q, int r)
{
int i,j,k;
k=0;
i=p;
j=q+1;
while(i<=q&&j<=r)
{
k++;
if(v[i]<v[j])
{
b[k]=v[i];
i++;
}
else
{
b[k]=v[j];
j++;
}
}
while(i<=q)
{
k++;
b[k]=v[i];
i++;
}
while(j<=r)
{
k++;
b[k]=v[j];
j++;
}
i=p;
j=1;
while(i<=r)
{
v[i]=b[j];
i++;
j++;
}
}
void mergesort( int v[],int b[],int p, int r)
{
int q;
if(p<r)
{
q=(p+r)/2;
mergesort (v,b,p,q);
mergesort (v,b,q+1,r);
interclasare(v,b,p,q,r);
}
}
int main ()
{
unsigned int i,j,aux;
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
mergesort (v,b,1,n);
for(k=1;k<=n;k++)
g<<v[k]<<' ';
return 0;
}