#!/usr/bin/env ruby def bsearch(target, items) min = 0 max = items.size mid = (max - min) / 2 while (mid > min && mid < max) do current = items[mid] if target == current return true elsif target > current min = mid else max = mid end mid = ((max - min) / 2) + min end return false end items = [3, 6, 7, 9, 12, 14, 18, 21, 22, 31, 43] puts items.inspect puts [1, bsearch(1, items)].inspect puts [35, bsearch(35, items)].inspect puts [22, bsearch(22, items)].inspect puts [44, bsearch(44, items)].inspect