Pagini recente » Cod sursa (job #515150) | Cod sursa (job #2660815) | Cod sursa (job #918815) | Cod sursa (job #2880161) | Cod sursa (job #959923)
Cod sursa(job #959923)
// Heapsort
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
vector< int > V;
int main() {
int N, x, i;
ifstream fi( "algsort.in" );
ofstream fo( "algsort.out" );
fi >> N;
for( i = 0; i < N; i++ ) {
fi >> x;
V.push_back( x );
}
make_heap( V.begin(), V.end() );
sort_heap( V.begin(), V.end() );
for( i = 0; i < N; i++ )
fo << V[i] << ' ';
fi.close(); fo.close();
return 0;
}
/*
// implementata o varianta naiva de Quicksort in C
#include <stdio.h>
#include <stdlib.h>
#define NX 500010
int N, v[ NX ];
int cmp( const void*x, const void *y ) {
return *(int*)x - *(int*)y;
}
int main() {
int i;
freopen( "algsort.in", "r", stdin );
freopen( "algsort.out", "w", stdout );
scanf( "%d", &N );
for( i = 0; i < N; i++ )
scanf( "%d", v+i );
qsort( v, N, sizeof( v[0] ), cmp );
for( i = 0; i < N; i++ )
printf( "%d ", v[i] );
return 0;
}
*/
/*
// Introsort
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
vector< int > V;
int main() {
int i, x, N;
freopen( "algsort.in", "r", stdin );
freopen( "algsort.out", "w", stdout );
scanf( "%d", &N );
for( i = 1; i <= N; i++ ) {
scanf( "%d", &x );
V.push_back( x );
}
sort( V.begin(), V.end() );
for( i = 0; i < N; i++ )
printf( "%d ", V[i] );
return 0;
}
*/