Pagini recente » Cod sursa (job #3291888) | Cod sursa (job #2784302) | Cod sursa (job #1055130) | Cod sursa (job #1787223) | Cod sursa (job #1313824)
#include <fstream>
using namespace std;
int v[ 500000 ];
void merge( int st, int mij, int dr )
{
int i = st, j = mij + 1, c[ 500000 ], k = 0;
while ( i <= mij && j <= dr )
if( v[ i ] < v[ j ] )
c[ k++ ] = v[ i++ ];
else
c[ k++ ] = v[ j++ ];
while ( i <= mij )
c[ k++ ] = v[ i++ ];
while ( j <= dr )
c[ k++ ] = v[ j++ ];
k = 0;
for ( i = st; i <= dr; i++ )
v[ i ] = c[ k++ ];
}
void sort ( int st, int dr )
{
int mij = ( dr - st )/2 + st;
if ( st < dr )
{
sort( st, mij );
sort( mij + 1, dr );
merge( st, mij, dr );
}
}
int main()
{
ifstream f("algsort.in");
int n, i;
f >> n;
for ( i = 0; i < n; i++ )
f >> v[ i ];
sort( 0, n-1 );
ofstream g("algsort.out");
for ( i = 0; i < n; i++ )
g << v[ i ] << " ";
f.close();
g.close();
return 0;
}