#include #include using namespace std; #include "Bidirectional_bubble_sort_basic.h" #include "Bidirectional_bubble_sort_array.h" #include "Bidirectional_bubble_sort_pointer.h" using namespace Sorting_algorithms; using namespace Bidirectional_bubble_sort; int const N = 40; int const M = 50000; 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 ); 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 ); 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 ); 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; } int t = time(0); Basic::sort( long_array, M ); cout << "Basic: " << time(0) - t << endl; for ( int i = 0; i < M; ++i ) { long_array[i] = i*15354943; } t = time(0); Array::sort( long_array, M ); cout << "Array-based: " << time(0) - t << endl; for ( int i = 0; i < M; ++i ) { long_array[i] = i*15354943; } t = time(0); Pointer::sort( long_array, M ); cout << "Pointer-based: " << time(0) - t << endl; delete [] long_array; return 0; }