Skip to content

Instantly share code, notes, and snippets.

@alexgriff
Created February 19, 2016 02:03
Show Gist options
  • Save alexgriff/1c1f4c642770b0d05b4a to your computer and use it in GitHub Desktop.
Save alexgriff/1c1f4c642770b0d05b4a to your computer and use it in GitHub Desktop.
require 'benchmark'
TEN = 10
ONE_HUNDRED = 100
ONE_THOUSAND = 1000
TEN_THOUSAND = 10000
ONE_HUNDRED_THOUSAND = 100000
ONE_MILLION = 1000000
TEN_MILLION = 10000000
ONE_HUNDRED_MILLION = 100000000
def generate_ten_random_numbers
(0...TEN).map { |generator| rand(TEN) }
end
def generate_one_hundred_random_numbers
(0...ONE_HUNDRED).map { |generator| rand(ONE_HUNDRED) }
end
def generate_one_thousand_random_numbers
(0...ONE_THOUSAND).map { |generator| rand(ONE_THOUSAND) }
end
def generate_ten_thousand_random_numbers
(0...TEN_THOUSAND).map { |generator| rand(TEN_THOUSAND) }
end
def generate_one_hundred_thousand_random_numbers
(0...ONE_HUNDRED_THOUSAND).map { |generator| rand(ONE_HUNDRED_THOUSAND) }
end
def generate_one_million_random_numbers
(0...ONE_MILLION).map { |generator| rand(ONE_MILLION) }
end
def generate_ten_million_random_numbers
(0...TEN_MILLION).map { |generator| rand(TEN_MILLION) }
end
def generate_one_hundred_million_random_numbers
(0...ONE_HUNDRED_MILLION).map { |generator| rand(ONE_HUNDRED_MILLION) }
end
Benchmark.bm do |test|
ten_random_numbers = generate_ten_random_numbers
test.report("10 test: ") {ten_random_numbers.sort!}
puts "top five: #{ten_random_numbers[0..4]}\n\n"
one_hundred_random_numbers = generate_one_hundred_random_numbers
test.report("100 test: ") {one_hundred_random_numbers.sort!}
puts "top five: #{one_hundred_random_numbers[0..4]}\n\n"
one_thousand_random_numbers = generate_one_thousand_random_numbers
test.report("1,000 test: ") {one_thousand_random_numbers.sort!}
puts "top five: #{one_thousand_random_numbers[0..4]}\n\n"
ten_thousand_random_numbers = generate_ten_thousand_random_numbers
test.report("10,000 test: ") {ten_thousand_random_numbers.sort!}
puts "top five: #{ten_thousand_random_numbers[0..4]}\n\n"
one_hundred_thousand_random_numbers = generate_one_hundred_thousand_random_numbers
test.report("100,000 test: ") {one_hundred_thousand_random_numbers.sort!}
puts "top five: #{one_hundred_thousand_random_numbers[0..4]}\n\n"
one_million_random_numbers = generate_one_million_random_numbers
test.report("1,000,000 test: ") {one_million_random_numbers.sort!}
puts "top five: #{one_million_random_numbers[0..4]}\n\n"
ten_million_random_numbers = generate_ten_million_random_numbers
test.report("10,000,000 test: ") {ten_million_random_numbers.sort!}
puts "top five: #{ten_million_random_numbers[0..4]}\n\n"
one_hundred_million_random_numbers = generate_one_hundred_million_random_numbers
test.report("100,000,000 test:") {one_hundred_million_random_numbers.sort!}
puts "top five: #{one_hundred_million_random_numbers[0..4]}\n\n"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment