==================================================================================================== SUMMARY (best-of-N seconds; speedup = numpy_quicksort_sec / spcmp_reported_sec) ==================================================================================================== type n spcmp cpp np_quick np_merge speedup ---------------------------------------------------------------------------------------------- uniform_random 1,000 110.0us 22.8us 3.5us 22.7us 0.03x normal 1,000 109.0us 14.1us 3.2us 29.6us 0.03x sorted_ascending 1,000 0.0us 4.3us 3.3us 1.1us n/a sorted_descending 1,000 1.0us 3.1us 3.1us 1.0us 3.10x nearly_sorted 1,000 5.0us 7.1us 3.4us 6.1us 0.67x nearly_reverse_sorted 1,000 206.0us 7.3us 2.7us 12.9us 0.01x few_unique 1,000 101.0us 6.9us 2.8us 18.8us 0.03x all_same 1,000 0.0us 3.3us 1.0us 1.3us n/a sawtooth 1,000 0.0us 4.3us 3.2us 1.4us n/a zigzag 1,000 105.0us 7.6us 3.3us 14.4us 0.03x exponential 1,000 110.0us 13.2us 3.1us 23.4us 0.03x clustered 1,000 107.0us 13.5us 2.9us 25.7us 0.03x block_shuffled 1,000 112.0us 20.1us 3.4us 42.0us 0.03x outliers 1,000 111.0us 21.7us 3.6us 29.9us 0.03x mixed_sign 1,000 110.0us 20.6us 4.9us 34.9us 0.04x pipe_organ 1,000 105.0us 24.2us 3.1us 2.5us 0.03x valley 1,000 109.0us 14.2us 3.1us 2.7us 0.03x duplicate_heavy_tail 1,000 0.0us 6.7us 3.7us 1.9us n/a subnormals 1,000 111.0us 19.9us 3.3us 30.8us 0.03x with_nans 1,000 89.0us n/a 3.5us 35.1us 0.04x uniform_random 10,000 118.0us 519.4us 27.6us 547.0us 0.23x normal 10,000 122.0us 442.9us 36.1us 483.8us 0.30x sorted_ascending 10,000 4.0us 59.8us 42.3us 7.4us 10.58x sorted_descending 10,000 7.0us 43.6us 48.0us 6.6us 6.85x nearly_sorted 10,000 127.0us 98.2us 37.0us 77.8us 0.29x nearly_reverse_sorted 10,000 134.0us 159.1us 29.5us 95.7us 0.22x few_unique 10,000 21.63ms 173.6us 12.2us 242.7us 0.00x all_same 10,000 4.0us 52.0us 7.5us 11.4us 1.87x sawtooth 10,000 98.0us 212.0us 29.1us 34.2us 0.30x zigzag 10,000 67.0us 150.4us 33.6us 87.8us 0.50x exponential 10,000 11.84ms 440.8us 27.7us 497.3us 0.00x clustered 10,000 118.0us 451.1us 33.6us 471.0us 0.28x block_shuffled 10,000 349.0us 509.0us 28.6us 322.8us 0.08x outliers 10,000 135.0us 458.4us 33.9us 480.2us 0.25x mixed_sign 10,000 107.0us 465.9us 27.7us 464.0us 0.26x pipe_organ 10,000 95.0us 391.6us 29.6us 14.4us 0.31x valley 10,000 467.0us 410.4us 32.0us 14.7us 0.07x duplicate_heavy_tail 10,000 4.0us 61.2us 32.5us 7.0us 8.13x subnormals 10,000 445.0us 447.6us 27.8us 481.0us 0.06x with_nans 10,000 159.0us n/a 33.3us 578.0us 0.21x uniform_random 100,000 319.0us 5.74ms 396.8us 6.41ms 1.24x normal 100,000 332.0us 5.58ms 371.3us 6.29ms 1.12x sorted_ascending 100,000 40.0us 1.00ms 375.3us 90.6us 9.38x sorted_descending 100,000 88.0us 525.8us 341.5us 287.2us 3.88x nearly_sorted 100,000 267.0us 2.11ms 360.3us 1.10ms 1.35x nearly_reverse_sorted 100,000 23.96ms 1.99ms 495.6us 1.54ms 0.02x few_unique 100,000 290.0us 1.75ms 92.3us 2.76ms 0.32x all_same 100,000 39.0us 573.2us 45.8us 69.1us 1.17x sawtooth 100,000 828.0us 2.20ms 383.1us 666.6us 0.46x zigzag 100,000 131.0us 2.08ms 357.6us 1.03ms 2.73x exponential 100,000 16.33ms 5.66ms 349.7us 6.05ms 0.02x clustered 100,000 273.0us 5.31ms 355.0us 6.10ms 1.30x block_shuffled 100,000 410.0us 3.57ms 375.7us 3.46ms 0.92x outliers 100,000 371.0us 5.42ms 352.1us 6.22ms 0.95x mixed_sign 100,000 295.0us 5.58ms 357.8us 6.30ms 1.21x pipe_organ 100,000 526.0us 5.59ms 357.6us 231.9us 0.68x valley 100,000 353.0us 5.72ms 363.0us 231.4us 1.03x duplicate_heavy_tail 100,000 39.0us 700.4us 502.5us 68.0us 12.88x subnormals 100,000 3.55ms 5.64ms 354.9us 6.58ms 0.10x with_nans 100,000 396.0us n/a 357.4us 6.39ms 0.90x uniform_random 1,000,000 1.05ms 65.55ms 4.80ms 75.91ms 4.57x normal 1,000,000 1.06ms 65.64ms 4.38ms 72.94ms 4.13x sorted_ascending 1,000,000 397.0us 8.11ms 4.15ms 645.4us 10.46x sorted_descending 1,000,000 737.0us 5.79ms 4.36ms 8.74ms 5.92x nearly_sorted 1,000,000 3.07ms 16.81ms 4.44ms 13.43ms 1.44x nearly_reverse_sorted 1,000,000 1.34ms 19.79ms 4.47ms 22.66ms 3.35x few_unique 1,000,000 34.16ms 17.64ms 1.09ms 28.09ms 0.03x all_same 1,000,000 388.0us 6.45ms 550.2us 661.1us 1.42x sawtooth 1,000,000 627.0us 21.59ms 3.09ms 9.34ms 4.93x zigzag 1,000,000 571.0us 22.95ms 4.43ms 12.04ms 7.76x exponential 1,000,000 1.36ms 58.03ms 3.96ms 68.48ms 2.92x clustered 1,000,000 1.71ms 49.99ms 4.25ms 62.41ms 2.48x block_shuffled 1,000,000 1.34ms 36.76ms 4.90ms 35.03ms 3.65x outliers 1,000,000 20.11ms 68.56ms 4.66ms 78.09ms 0.23x mixed_sign 1,000,000 1.27ms 69.48ms 4.65ms 76.38ms 3.67x pipe_organ 1,000,000 1.31ms 61.96ms 4.86ms 5.64ms 3.72x valley 1,000,000 1.70ms 58.15ms 4.39ms 5.30ms 2.58x duplicate_heavy_tail 1,000,000 385.0us 7.99ms 6.00ms 658.0us 15.58x subnormals 1,000,000 32.75ms 60.98ms 4.23ms 72.23ms 0.13x with_nans 1,000,000 2.31ms n/a 4.70ms 79.48ms 2.04x uniform_random 10,000,000 14.71ms 750.68ms 65.09ms 998.41ms 4.43x normal 10,000,000 15.29ms 744.19ms 54.78ms 901.14ms 3.58x sorted_ascending 10,000,000 4.54ms 106.70ms 52.84ms 6.30ms 11.64x sorted_descending 10,000,000 7.77ms 88.91ms 59.51ms 181.12ms 7.66x nearly_sorted 10,000,000 15.07ms 196.04ms 61.46ms 178.95ms 4.08x nearly_reverse_sorted 10,000,000 19.48ms 237.58ms 54.58ms 261.49ms 2.80x few_unique 10,000,000 13.05ms 201.02ms 14.23ms 319.81ms 1.09x all_same 10,000,000 4.29ms 80.99ms 5.92ms 6.37ms 1.38x sawtooth 10,000,000 91.55ms 234.53ms 42.28ms 137.33ms 0.46x zigzag 10,000,000 11.25ms 272.46ms 59.14ms 125.97ms 5.25x exponential 10,000,000 49.23ms 715.45ms 57.03ms 940.02ms 1.16x clustered 10,000,000 24.19ms 569.12ms 52.50ms 767.65ms 2.17x block_shuffled 10,000,000 14.07ms 396.05ms 59.32ms 324.55ms 4.22x outliers 10,000,000 17.48ms 763.75ms 52.62ms 872.80ms 3.01x mixed_sign 10,000,000 14.17ms 724.71ms 55.47ms 940.08ms 3.92x pipe_organ 10,000,000 16.99ms 760.52ms 63.28ms 101.14ms 3.72x valley 10,000,000 18.51ms 760.68ms 65.82ms 103.28ms 3.56x duplicate_heavy_tail 10,000,000 4.14ms 108.71ms 88.92ms 7.06ms 21.49x subnormals 10,000,000 59.83ms 650.58ms 53.33ms 778.52ms 0.89x with_nans 10,000,000 17.39ms n/a 51.40ms 892.83ms 2.96x uniform_random 100,000,000 147.68ms 7.200s 686.53ms 10.889s 4.65x normal 100,000,000 140.75ms 7.212s 619.15ms 10.927s 4.40x sorted_ascending 100,000,000 43.37ms n/a 719.73ms 71.02ms 16.59x sorted_descending 100,000,000 93.69ms 1.324s 718.49ms 2.693s 7.67x nearly_sorted 100,000,000 146.42ms 2.366s 746.61ms 2.115s 5.10x nearly_reverse_sorted 100,000,000 111.96ms 2.385s 674.65ms 3.819s 6.03x few_unique 100,000,000 103.51ms 2.054s 157.61ms 3.501s 1.52x all_same 100,000,000 43.35ms 955.91ms 60.59ms 64.13ms 1.40x sawtooth 100,000,000 942.57ms 2.313s 471.21ms 1.799s 0.50x zigzag 100,000,000 111.33ms 2.889s 643.88ms 1.497s 5.78x exponential 100,000,000 213.79ms 6.802s 666.80ms 10.596s 3.12x clustered 100,000,000 145.46ms 5.427s 416.34ms 7.349s 2.86x block_shuffled 100,000,000 128.88ms 3.396s 639.99ms 3.057s 4.97x outliers 100,000,000 130.46ms 6.617s 609.78ms 10.085s 4.67x mixed_sign 100,000,000 139.25ms 6.922s 625.21ms 10.127s 4.49x pipe_organ 100,000,000 138.07ms 6.909s 748.72ms 1.598s 5.42x valley 100,000,000 144.22ms 8.155s 759.49ms 1.524s 5.27x duplicate_heavy_tail 100,000,000 39.85ms 1.300s 1.080s 67.09ms 27.09x subnormals 100,000,000 3.845s 4.812s 467.78ms 8.166s 0.12x with_nans 100,000,000 154.77ms n/a 642.35ms 10.402s 4.15x Full results written to results.csv