main
1require "spec_helper"
2
3def binary_search(items, target)
4 lo = 1
5 hi = items.size
6 while lo <= hi
7 mid = lo + (hi-lo)/2
8 if items[mid] == target
9 return items[mid]
10 elsif items[mid] < target
11 lo = mid + 1
12 else
13 hi = mid - 1
14 end
15 end
16 nil
17end
18
19describe "binary search" do
20 it "should find the number" do
21 items = [0, 5, 13, 19, 22, 41, 55, 68, 72, 81, 98]
22 result = binary_search(items, 55)
23 expect(result).to eq(55)
24 end
25end