Skip to content

Instantly share code, notes, and snippets.

@bradhe
Created November 22, 2013 08:04
Show Gist options
  • Select an option

  • Save bradhe/7596471 to your computer and use it in GitHub Desktop.

Select an option

Save bradhe/7596471 to your computer and use it in GitHub Desktop.
A Ruby implementation of bogosort (http://en.wikipedia.org/wiki/Bogosort) and a few shitty metrics about it.
$ cat bogo_sort.rb
count = []
100.times do
start_at = Time.now
corpus = (1..10).to_a
shuffled = corpus.shuffle
$count = 0
loop do
break if corpus == shuffled
$count += 1
shuffled = shuffled.shuffle
end
puts "Sorted after #{$count} iterations (#{((Time.now - start_at) * 1000.0).to_i}ms)"
count << $count
end
puts "Average iterations: #{count.reduce(&:+) / count.length}"
$ ruby bogo_sort.rb
Sorted after 6530615 iterations (5051ms)
Sorted after 2142635 iterations (1652ms)
Sorted after 1328844 iterations (1018ms)
Sorted after 365919 iterations (281ms)
Sorted after 7372232 iterations (5712ms)
Sorted after 7597077 iterations (5889ms)
Sorted after 222960 iterations (177ms)
Sorted after 1499460 iterations (1169ms)
Sorted after 1025090 iterations (785ms)
Sorted after 8229847 iterations (6331ms)
Sorted after 6284592 iterations (4798ms)
Sorted after 664675 iterations (512ms)
Sorted after 2163082 iterations (1655ms)
Sorted after 7041456 iterations (5532ms)
Sorted after 3548751 iterations (2742ms)
Sorted after 1663654 iterations (1296ms)
Sorted after 846917 iterations (651ms)
Sorted after 8072303 iterations (6316ms)
Sorted after 1610523 iterations (1264ms)
Sorted after 3750959 iterations (2949ms)
Sorted after 12248881 iterations (9515ms)
Sorted after 781916 iterations (612ms)
Sorted after 4224542 iterations (3347ms)
Sorted after 2233877 iterations (1730ms)
Sorted after 2657800 iterations (2073ms)
Sorted after 6251173 iterations (4899ms)
Sorted after 1914845 iterations (1515ms)
Sorted after 6164977 iterations (4861ms)
Sorted after 2125054 iterations (1657ms)
Sorted after 2642875 iterations (2059ms)
Sorted after 11670758 iterations (9080ms)
Sorted after 884363 iterations (707ms)
Sorted after 2903666 iterations (2252ms)
Sorted after 2240383 iterations (1727ms)
Sorted after 1734127 iterations (1354ms)
Sorted after 1465950 iterations (1138ms)
Sorted after 8626083 iterations (6794ms)
Sorted after 6827382 iterations (5384ms)
Sorted after 3835240 iterations (2974ms)
Sorted after 3020369 iterations (2372ms)
Sorted after 264097 iterations (207ms)
Sorted after 6767814 iterations (5169ms)
Sorted after 3128977 iterations (2397ms)
Sorted after 7001421 iterations (5485ms)
Sorted after 3732907 iterations (2935ms)
Sorted after 2880892 iterations (2285ms)
Sorted after 4555914 iterations (3568ms)
Sorted after 4644245 iterations (3613ms)
Sorted after 8598670 iterations (7063ms)
Sorted after 6025695 iterations (4826ms)
Sorted after 869562 iterations (674ms)
Sorted after 342309 iterations (299ms)
Sorted after 359252 iterations (292ms)
Sorted after 748907 iterations (593ms)
Sorted after 10682033 iterations (8369ms)
Sorted after 7592177 iterations (5976ms)
Sorted after 718436 iterations (574ms)
Sorted after 2401726 iterations (1875ms)
Sorted after 1163082 iterations (918ms)
Sorted after 394641 iterations (307ms)
Sorted after 1405334 iterations (1107ms)
Sorted after 437916 iterations (343ms)
Sorted after 1156533 iterations (894ms)
Sorted after 4284049 iterations (3334ms)
Sorted after 117722 iterations (95ms)
Sorted after 4423619 iterations (3498ms)
Sorted after 1772476 iterations (1391ms)
Sorted after 1156440 iterations (905ms)
Sorted after 3337935 iterations (2582ms)
Sorted after 3567920 iterations (2779ms)
Sorted after 1656031 iterations (1291ms)
Sorted after 3509849 iterations (2797ms)
Sorted after 2671565 iterations (2130ms)
Sorted after 1352138 iterations (1078ms)
Sorted after 4713984 iterations (3727ms)
Sorted after 2642500 iterations (2099ms)
Sorted after 703685 iterations (555ms)
Sorted after 4288900 iterations (3434ms)
Sorted after 8088360 iterations (6307ms)
Sorted after 6153879 iterations (4775ms)
Sorted after 503543 iterations (388ms)
Sorted after 387507 iterations (307ms)
Sorted after 2924800 iterations (2308ms)
Sorted after 642897 iterations (499ms)
Sorted after 313407 iterations (245ms)
Sorted after 227076 iterations (177ms)
Sorted after 3159554 iterations (2470ms)
Sorted after 3147106 iterations (2474ms)
Sorted after 4331886 iterations (3370ms)
Sorted after 850659 iterations (656ms)
Sorted after 445268 iterations (345ms)
Sorted after 4745189 iterations (3717ms)
Sorted after 2296440 iterations (1812ms)
Sorted after 64551 iterations (52ms)
Sorted after 453840 iterations (368ms)
Sorted after 46580 iterations (37ms)
Sorted after 5132850 iterations (4073ms)
Sorted after 5885120 iterations (4678ms)
Sorted after 9201715 iterations (7142ms)
Sorted after 2706058 iterations (2123ms)
Average iterations: 3341954
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment