main
 1#!/usr/bin/env ruby
 2
 3def bsearch(target, items)
 4  min = 0
 5  max = items.size
 6  mid = (max - min) / 2
 7
 8  while (mid > min && mid < max) do
 9    current = items[mid]
10
11    if target == current
12      return true
13    elsif target > current
14      min = mid
15    else
16      max = mid
17    end
18
19    mid = ((max - min) / 2) + min
20  end
21
22  return false
23end
24
25items = [3, 6, 7, 9, 12, 14, 18, 21, 22, 31, 43]
26puts items.inspect
27puts [1, bsearch(1, items)].inspect
28puts [35, bsearch(35, items)].inspect
29puts [22, bsearch(22, items)].inspect
30puts [44, bsearch(44, items)].inspect