#include #include using namespace std; #include "Binary_radix_sort_basic.h" #include "Binary_radix_sort_array.h" #include "Binary_radix_sort_pointer.h" using namespace Sorting_algorithms; using namespace Binary_radix_sort; int const N = 40; int const M = 200000000; int main() { ////////////////////////// // Create a small array // ////////////////////////// int *array = new int[N]; for ( int i = 0; i < N; ++i ) { array[i] = (5323*i) % N; } Basic::sort( array, N, 6 ); cout << array[0]; for ( int i = 1; i < N; ++i ) { cout << ", " << array[i]; } cout << endl << endl; for ( int i = 0; i < N; ++i ) { array[i] = (5323*i) % N; } Array::sort( array, N, 6 ); cout << array[0]; for ( int i = 1; i < N; ++i ) { cout << ", " << array[i]; } cout << endl << endl; for ( int i = 0; i < N; ++i ) { array[i] = (5323*i) % N; } Pointer::sort( array, N, 6 ); cout << array[0]; for ( int i = 1; i < N; ++i ) { cout << ", " << array[i]; } cout << endl << endl; delete [] array; ////////////////////////// // Create a large array // ////////////////////////// int *long_array = new int[M]; for ( int i = 0; i < M; ++i ) { long_array[i] = (i*15354943) & 65535; } int t = time(0); Basic::sort( long_array, M, 16 ); cout << "Basic: " << time(0) - t << endl; for ( int i = 0; i < M; ++i ) { long_array[i] = (i*15354943) & 65535; } t = time(0); Array::sort( long_array, M, 16 ); cout << "Array-based: " << time(0) - t << endl; for ( int i = 0; i < M; ++i ) { long_array[i] = (i*15354943) & 65535; } t = time(0); Pointer::sort( long_array, M, 16 ); cout << "Pointer-based: " << time(0) - t << endl; delete [] long_array; return 0; }