python bench.py SMALL ARRAYS (n = 1000, iterations = 1000) libstdc++ std::sort 0.039161 sec, 1.00x clay hybrid quicksort (pointers) 0.048146 sec, 1.23x clay recursive quicksort (pointers) 0.050095 sec, 1.28x clay recursive quicksort (indexing) 0.055677 sec, 1.42x clay iterative quicksort (pointers) 0.061521 sec, 1.57x clay median-of-3 quicksort (pointers) 0.063290 sec, 1.62x clay iterative quicksort (indexing) 0.064850 sec, 1.66x clay median-of-3 quicksort (indexing) 0.066014 sec, 1.69x libc qsort 0.094520 sec, 2.41x python sort 0.256816 sec, 6.56x LARGE ARRAYS (n = 100000, iterations = 100) libstdc++ std::sort 0.644759 sec, 1.00x clay hybrid quicksort (pointers) 0.754498 sec, 1.17x clay recursive quicksort (pointers) 0.806814 sec, 1.25x clay iterative quicksort (pointers) 0.809763 sec, 1.26x clay median-of-3 quicksort (pointers) 0.839164 sec, 1.30x clay iterative quicksort (indexing) 0.890464 sec, 1.38x clay recursive quicksort (indexing) 0.894886 sec, 1.39x clay median-of-3 quicksort (indexing) 0.906966 sec, 1.41x libc qsort 1.530384 sec, 2.37x python sort 5.405510 sec, 8.38x SMALL MOSTLY SORTED ARRAYS libstdc++ std::sort 0.012400 sec, 1.00x clay hybrid quicksort (pointers) 0.028219 sec, 2.28x libc qsort 0.038869 sec, 3.13x clay median-of-3 quicksort (pointers) 0.044733 sec, 3.61x clay median-of-3 quicksort (indexing) 0.050499 sec, 4.07x clay recursive quicksort (indexing) 0.057867 sec, 4.67x clay recursive quicksort (pointers) 0.064344 sec, 5.19x clay iterative quicksort (pointers) 0.072535 sec, 5.85x clay iterative quicksort (indexing) 0.088338 sec, 7.12x python sort 0.143511 sec, 11.57x LARGE MOSTLY SORTED ARRAYS libstdc++ std::sort 0.138827 sec, 1.00x libc qsort 0.496564 sec, 3.58x clay hybrid quicksort (pointers) 0.605133 sec, 4.36x clay median-of-3 quicksort (pointers) 0.723807 sec, 5.21x python sort 0.951939 sec, 6.86x clay median-of-3 quicksort (indexing) 0.993264 sec, 7.15x clay iterative quicksort (pointers) 2.625871 sec, 18.91x clay recursive quicksort (indexing) 2.692422 sec, 19.39x clay recursive quicksort (pointers) 3.247217 sec, 23.39x clay iterative quicksort (indexing) 3.400822 sec, 24.50x SMALL MOSTLY REVERSE SORTED ARRAYS libstdc++ std::sort 0.021275 sec, 1.00x clay hybrid quicksort (pointers) 0.028843 sec, 1.36x clay median-of-3 quicksort (pointers) 0.041818 sec, 1.97x clay median-of-3 quicksort (indexing) 0.047011 sec, 2.21x clay recursive quicksort (pointers) 0.053654 sec, 2.52x clay iterative quicksort (pointers) 0.055516 sec, 2.61x clay recursive quicksort (indexing) 0.057015 sec, 2.68x clay iterative quicksort (indexing) 0.063168 sec, 2.97x libc qsort 0.073471 sec, 3.45x python sort 0.161740 sec, 7.60x LARGE MOSTLY REVERSE SORTED ARRAYS libstdc++ std::sort 0.387052 sec, 1.00x clay hybrid quicksort (pointers) 0.422230 sec, 1.09x clay median-of-3 quicksort (pointers) 0.487204 sec, 1.26x clay median-of-3 quicksort (indexing) 0.613083 sec, 1.58x libc qsort 0.941301 sec, 2.43x clay iterative quicksort (pointers) 0.984967 sec, 2.54x python sort 1.067029 sec, 2.76x clay recursive quicksort (pointers) 1.180422 sec, 3.05x clay recursive quicksort (indexing) 1.296979 sec, 3.35x clay iterative quicksort (indexing) 1.331981 sec, 3.44x