C:\test\C>mergeParts 200000000 200 qsort took 59.047691648 secs for 200 partitions of 200000000 element array qsort took 7121.598593905 secs to merge 200 partitions of 200000000 element array #### C:\test>BiDiBubbleSort -N=4 #### 4*3/2 = 6 pairs [ D<>C B A ]: comp&swap( 0, 1 ) D < C [ C D<>B A ]: comp&swap( 1, 2 ) D < B [ C B D<>A ]: comp&swap( 2, 3 ) D < A [ C B<>A D ]: comp&swap( 1, 2 ) B < A [ C<>A B D ]: comp&swap( 0, 1 ) C < A [ A C<>B D ]: comp&swap( 1, 2 ) C < B A B C D C:\test>BiDiBubbleSort -N=5 #### 5*4/2 = 10 pairs. [ E<>D C B A ]: comp&swap( 0, 1 ) E < D [ D E<>C B A ]: comp&swap( 1, 2 ) E < C [ D C E<>B A ]: comp&swap( 2, 3 ) E < B [ D C B E<>A ]: comp&swap( 3, 4 ) E < A [ D C B<>A E ]: comp&swap( 2, 3 ) B < A [ D C<>A B E ]: comp&swap( 1, 2 ) C < A [ D<>A C B E ]: comp&swap( 0, 1 ) D < A [ A D<>C B E ]: comp&swap( 1, 2 ) D < C [ A C D<>B E ]: comp&swap( 2, 3 ) D < B [ A C<>B D E ]: comp&swap( 1, 2 ) C < B A B C D E #### for( p1 = start, p2 = end; p1 < p2; ++p1, --p2 ) if( a[p1] < a[p2] ) swap( p1, p2 ).