Pagini recente » Cod sursa (job #1190662) | Cod sursa (job #3218195) | Cod sursa (job #1156172) | Cod sursa (job #2763769) | Cod sursa (job #2544975)
#include <fstream>
#define f in
#define g out
using namespace std;
ifstream in ( "algsort.in" );
ofstream out( "algsort.out" );
int n, i, v[500005], w[500005];
void interclaseaza ( int st, int mid, int dr ){
int i = st, j = mid+1, k = st-1;
while ( i <= mid && j <= dr ){
if ( v[i] <= v[j] )
w[++k] = v[i++];
else w[++k] = v[j++];
}
for ( ; i <= mid; i++ )
w[++k] = v[i];
for ( ; j <= dr; j++ )
w[++k] = v[j];
for ( i = st; i <= dr; i++ )
v[i] = w[i];
}
void sorteaza ( int st, int dr ){
if ( st >= dr ) return;
int mid = st+((dr-st)>>1);
sorteaza( st, mid );
sorteaza( mid+1, dr );
interclaseaza ( st, mid, dr );
}
int main() {
f>>n;
for ( i=1; i <= n; i++ )
f>>v[i];
sorteaza ( 1, n );
for ( i=1; i <= n; i++ )
g<<v[i]<<" ";
return 0;
}