Sha256: c77bc0223cc019cd312b732d8221764ecff9d4c16460916bbf95a18b2940b6de
Contents?: true
Size: 570 Bytes
Versions: 396
Compression:
Stored size: 570 Bytes
Contents
class BinarySearch attr_reader :list def initialize(data) fail ArgumentError unless data.sort == data @list = data end def search_for(datum) return middle if list[middle] == datum if list[middle] > datum sublist = list[0..middle] fail 'Not Found' if sublist == list return BinarySearch.new(sublist).search_for(datum) else sublist = list[middle..-1] fail 'Not Found' if sublist == list return BinarySearch.new(sublist).search_for(datum) + middle end end def middle list.length / 2 end end
Version data entries
396 entries across 396 versions & 1 rubygems