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 ).