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