kareemgrant
5/23/2015 - 7:01 PM

find_duplicate_comparison.rb

require 'benchmark'

numbers = (1..9999).to_a.shuffle << 9999

def find_duplicate_hash_store(numbers_array)
  checked_numbers = {}

  numbers_array.each do |number|
    return number if checked_numbers[number] != nil
    checked_numbers[number] = number
  end

  'no duplicate found'
end

def find_duplicate_array_store(numbers_array)
  checked_numbers = []

  numbers_array.each do |number|
    return number if checked_numbers.include?(number)
    checked_numbers << number
  end

  'no duplicate found'
end


Benchmark.bm(7) do |x|
  x.report("hash_store ")  { find_duplicate_hash_store(numbers)}
  x.report("array_store") { find_duplicate_array_store(numbers)}
end