Skip to content

Instantly share code, notes, and snippets.

@sglienke
Created July 24, 2024 16:16
Show Gist options
  • Save sglienke/91e95984a12be72c228395aa80b10924 to your computer and use it in GitHub Desktop.
Save sglienke/91e95984a12be72c228395aa80b10924 to your computer and use it in GitHub Desktop.
QuickSort, IntroSort, PDQSort Benchmark
-------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
-------------------------------------------------------------------------------------
random/QuickSort/count:100 4040 ns 3640 ns 10
random/IntroSort/count:100 2440 ns 2344 ns 10
random/PDQSort/count:100 2580 ns 2509 ns 10
random/QuickSort/count:1000 67280 ns 67125 ns 10
random/IntroSort/count:1000 47800 ns 47589 ns 10
random/PDQSort/count:1000 47150 ns 47067 ns 10
random/QuickSort/count:10000 631340 ns 630232 ns 10
random/IntroSort/count:10000 433890 ns 432106 ns 10
random/PDQSort/count:10000 415280 ns 415120 ns 10
random/QuickSort/count:100000 7634460 ns 7629077 ns 10
random/IntroSort/count:100000 5517100 ns 5512140 ns 10
random/PDQSort/count:100000 5368250 ns 5361250 ns 10
random/QuickSort/count:1000000 88514160 ns 88323079 ns 10
random/IntroSort/count:1000000 67195440 ns 67111153 ns 10
random/PDQSort/count:1000000 64550070 ns 64406913 ns 10
few_unique/QuickSort/count:100 3140 ns 3011 ns 10
few_unique/IntroSort/count:100 2920 ns 2604 ns 10
few_unique/PDQSort/count:100 2280 ns 2155 ns 10
few_unique/QuickSort/count:1000 31590 ns 31264 ns 10
few_unique/IntroSort/count:1000 22580 ns 22232 ns 10
few_unique/PDQSort/count:1000 18720 ns 18443 ns 10
few_unique/QuickSort/count:10000 383290 ns 381615 ns 10
few_unique/IntroSort/count:10000 234550 ns 234165 ns 10
few_unique/PDQSort/count:10000 138830 ns 138404 ns 10
few_unique/QuickSort/count:100000 4197710 ns 4190233 ns 10
few_unique/IntroSort/count:100000 2626130 ns 2622900 ns 10
few_unique/PDQSort/count:100000 1351430 ns 1310212 ns 10
few_unique/QuickSort/count:1000000 48200920 ns 48139088 ns 10
few_unique/IntroSort/count:1000000 30340630 ns 30310203 ns 10
few_unique/PDQSort/count:1000000 13665450 ns 13626915 ns 10
all_equal/QuickSort/count:100 2460 ns 2275 ns 10
all_equal/IntroSort/count:100 1510 ns 1419 ns 10
all_equal/PDQSort/count:100 870 ns 801 ns 10
all_equal/QuickSort/count:1000 17500 ns 17280 ns 10
all_equal/IntroSort/count:1000 13720 ns 13417 ns 10
all_equal/PDQSort/count:1000 3550 ns 3540 ns 10
all_equal/QuickSort/count:10000 206410 ns 205913 ns 10
all_equal/IntroSort/count:10000 126660 ns 126232 ns 10
all_equal/PDQSort/count:10000 18230 ns 17842 ns 10
all_equal/QuickSort/count:100000 2583750 ns 2578531 ns 10
all_equal/IntroSort/count:100000 1534710 ns 1532314 ns 10
all_equal/PDQSort/count:100000 168930 ns 168780 ns 10
all_equal/QuickSort/count:1000000 30918570 ns 30806036 ns 10
all_equal/IntroSort/count:1000000 18638750 ns 18621043 ns 10
all_equal/PDQSort/count:1000000 1711440 ns 1710543 ns 10
ascending/QuickSort/count:100 1400 ns 1309 ns 10
ascending/IntroSort/count:100 940 ns 854 ns 10
ascending/PDQSort/count:100 1720 ns 1206 ns 10
ascending/QuickSort/count:1000 13770 ns 13712 ns 10
ascending/IntroSort/count:1000 9900 ns 9635 ns 10
ascending/PDQSort/count:1000 2260 ns 2223 ns 10
ascending/QuickSort/count:10000 162660 ns 162131 ns 10
ascending/IntroSort/count:10000 126500 ns 124807 ns 10
ascending/PDQSort/count:10000 19880 ns 19537 ns 10
ascending/QuickSort/count:100000 1955050 ns 1952304 ns 10
ascending/IntroSort/count:100000 1453430 ns 1452973 ns 10
ascending/PDQSort/count:100000 185170 ns 184959 ns 10
ascending/QuickSort/count:1000000 23303560 ns 23284086 ns 10
ascending/IntroSort/count:1000000 17123590 ns 17077790 ns 10
ascending/PDQSort/count:1000000 1873450 ns 1872372 ns 10
slightly_scrambled/QuickSort/count:100 2900 ns 2557 ns 10
slightly_scrambled/IntroSort/count:100 1380 ns 1258 ns 10
slightly_scrambled/PDQSort/count:100 1020 ns 951 ns 10
slightly_scrambled/QuickSort/count:1000 18310 ns 17923 ns 10
slightly_scrambled/IntroSort/count:1000 10740 ns 10667 ns 10
slightly_scrambled/PDQSort/count:1000 12690 ns 12357 ns 10
slightly_scrambled/QuickSort/count:10000 206160 ns 206031 ns 10
slightly_scrambled/IntroSort/count:10000 179200 ns 175492 ns 10
slightly_scrambled/PDQSort/count:10000 160250 ns 157767 ns 10
slightly_scrambled/QuickSort/count:100000 2579200 ns 2573534 ns 10
slightly_scrambled/IntroSort/count:100000 2101740 ns 2096306 ns 10
slightly_scrambled/PDQSort/count:100000 2020830 ns 2018600 ns 10
slightly_scrambled/QuickSort/count:1000000 30554080 ns 30517088 ns 10
slightly_scrambled/IntroSort/count:1000000 25675760 ns 25640277 ns 10
slightly_scrambled/PDQSort/count:1000000 24336000 ns 24285203 ns 10
sorted_blocks/QuickSort/count:100 3890 ns 3583 ns 10
sorted_blocks/IntroSort/count:100 2260 ns 1926 ns 10
sorted_blocks/PDQSort/count:100 1920 ns 2162 ns 10
sorted_blocks/QuickSort/count:1000 18820 ns 18800 ns 10
sorted_blocks/IntroSort/count:1000 22610 ns 18358 ns 10
sorted_blocks/PDQSort/count:1000 25360 ns 24024 ns 10
sorted_blocks/QuickSort/count:10000 319440 ns 319241 ns 10
sorted_blocks/IntroSort/count:10000 193320 ns 193207 ns 10
sorted_blocks/PDQSort/count:10000 192560 ns 192234 ns 10
sorted_blocks/QuickSort/count:100000 3598740 ns 3597498 ns 10
sorted_blocks/IntroSort/count:100000 2505820 ns 2500858 ns 10
sorted_blocks/PDQSort/count:100000 2404330 ns 2401314 ns 10
sorted_blocks/QuickSort/count:1000000 42268670 ns 42157998 ns 10
sorted_blocks/IntroSort/count:1000000 30812850 ns 30780156 ns 10
sorted_blocks/PDQSort/count:1000000 29851980 ns 29719020 ns 10
single_big_swap/QuickSort/count:100 1560 ns 1470 ns 10
single_big_swap/IntroSort/count:100 1380 ns 1346 ns 10
single_big_swap/PDQSort/count:100 2810 ns 2583 ns 10
single_big_swap/QuickSort/count:1000 14180 ns 14160 ns 10
single_big_swap/IntroSort/count:1000 15660 ns 15566 ns 10
single_big_swap/PDQSort/count:1000 9600 ns 9353 ns 10
single_big_swap/QuickSort/count:10000 172290 ns 170552 ns 10
single_big_swap/IntroSort/count:10000 216700 ns 216182 ns 10
single_big_swap/PDQSort/count:10000 98250 ns 97039 ns 10
single_big_swap/QuickSort/count:100000 2062770 ns 2056669 ns 10
single_big_swap/IntroSort/count:100000 2896060 ns 2892563 ns 10
single_big_swap/PDQSort/count:100000 1096040 ns 1095673 ns 10
single_big_swap/QuickSort/count:1000000 23931190 ns 23899485 ns 10
single_big_swap/IntroSort/count:1000000 34618400 ns 34582704 ns 10
single_big_swap/PDQSort/count:1000000 11539580 ns 11487115 ns 10
descending/QuickSort/count:100 1970 ns 1851 ns 10
descending/IntroSort/count:100 1250 ns 1132 ns 10
descending/PDQSort/count:100 850 ns 757 ns 10
descending/QuickSort/count:1000 19900 ns 19668 ns 10
descending/IntroSort/count:1000 11370 ns 11269 ns 10
descending/PDQSort/count:1000 3600 ns 3527 ns 10
descending/QuickSort/count:10000 168400 ns 167597 ns 10
descending/IntroSort/count:10000 125290 ns 124812 ns 10
descending/PDQSort/count:10000 26340 ns 25831 ns 10
descending/QuickSort/count:100000 1877080 ns 1869364 ns 10
descending/IntroSort/count:100000 1471510 ns 1449979 ns 10
descending/PDQSort/count:100000 183100 ns 182337 ns 10
descending/QuickSort/count:1000000 23090410 ns 22996780 ns 10
descending/IntroSort/count:1000000 16860770 ns 16771961 ns 10
descending/PDQSort/count:1000000 1892210 ns 1886536 ns 10
pipe_organ/QuickSort/count:100 2230 ns 2065 ns 10
pipe_organ/IntroSort/count:100 1230 ns 1163 ns 10
pipe_organ/PDQSort/count:100 580 ns 505 ns 10
pipe_organ/QuickSort/count:1000 21450 ns 21365 ns 10
pipe_organ/IntroSort/count:1000 13350 ns 13173 ns 10
pipe_organ/PDQSort/count:1000 3580 ns 3471 ns 10
pipe_organ/QuickSort/count:10000 182800 ns 182396 ns 10
pipe_organ/IntroSort/count:10000 126330 ns 125764 ns 10
pipe_organ/PDQSort/count:10000 24860 ns 24552 ns 10
pipe_organ/QuickSort/count:100000 2363360 ns 2309605 ns 10
pipe_organ/IntroSort/count:100000 1461580 ns 1457408 ns 10
pipe_organ/PDQSort/count:100000 181690 ns 181297 ns 10
pipe_organ/QuickSort/count:1000000 26773850 ns 26643956 ns 10
pipe_organ/IntroSort/count:1000000 17502690 ns 17450875 ns 10
pipe_organ/PDQSort/count:1000000 1863820 ns 1859436 ns 10
push_front/QuickSort/count:100 2530 ns 2402 ns 10
push_front/IntroSort/count:100 1970 ns 1851 ns 10
push_front/PDQSort/count:100 2150 ns 2055 ns 10
push_front/QuickSort/count:1000 19850 ns 19610 ns 10
push_front/IntroSort/count:1000 21170 ns 20742 ns 10
push_front/PDQSort/count:1000 20480 ns 20170 ns 10
push_front/QuickSort/count:10000 190470 ns 190090 ns 10
push_front/IntroSort/count:10000 225610 ns 224936 ns 10
push_front/PDQSort/count:10000 157530 ns 157058 ns 10
push_front/QuickSort/count:100000 2320830 ns 2292301 ns 10
push_front/IntroSort/count:100000 2894370 ns 2870648 ns 10
push_front/PDQSort/count:100000 1680320 ns 1677096 ns 10
push_front/QuickSort/count:1000000 25921830 ns 25813666 ns 10
push_front/IntroSort/count:1000000 35134590 ns 34996949 ns 10
push_front/PDQSort/count:1000000 19441150 ns 19392117 ns 10
push_middle/QuickSort/count:100 2240 ns 2104 ns 10
push_middle/IntroSort/count:100 1540 ns 1422 ns 10
push_middle/PDQSort/count:100 1360 ns 1276 ns 10
push_middle/QuickSort/count:1000 18270 ns 17983 ns 10
push_middle/IntroSort/count:1000 17280 ns 16908 ns 10
push_middle/PDQSort/count:1000 7920 ns 7684 ns 10
push_middle/QuickSort/count:10000 176060 ns 175701 ns 10
push_middle/IntroSort/count:10000 169030 ns 168342 ns 10
push_middle/PDQSort/count:10000 49450 ns 49126 ns 10
push_middle/QuickSort/count:100000 2110940 ns 2104191 ns 10
push_middle/IntroSort/count:100000 2141760 ns 2133339 ns 10
push_middle/PDQSort/count:100000 419660 ns 416310 ns 10
push_middle/QuickSort/count:1000000 24263790 ns 24199574 ns 10
push_middle/IntroSort/count:1000000 25662440 ns 25537998 ns 10
push_middle/PDQSort/count:1000000 4288610 ns 4272004 ns 10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment