summaryrefslogtreecommitdiff
path: root/spec/practice/binary_search_spec.rb
blob: 686173b856eb9b74bdb7ec104dda014258d4e65f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
require "spec_helper"

def binary_search(items, target)
  lo = 1
  hi = items.size
  while lo <= hi
    mid = lo + (hi-lo)/2
    if items[mid] == target
      return items[mid]
    elsif items[mid] < target
      lo = mid + 1
    else
      hi = mid - 1
    end
  end
  nil
end

describe "binary search" do
  it "should find the number" do
    items = [0, 5, 13, 19, 22, 41, 55, 68, 72, 81, 98]
    result = binary_search(items, 55)
    expect(result).to eq(55)
  end
end