#include #include using namespace std; #include "Radix_sort_basic.h" // #include "Radix_sort_array.h" // #include "Radix_sort_pointer.h" using namespace Sorting_algorithms; using namespace Radix_sort; int const N = 40; int const M = 2000; 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, 10 ); 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, 10 ); 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, 10 ); 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; }