diff options
Diffstat (limited to 'assignments/a1.rb')
| -rw-r--r-- | assignments/a1.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/assignments/a1.rb b/assignments/a1.rb new file mode 100644 index 0000000..d09208d --- /dev/null +++ b/assignments/a1.rb @@ -0,0 +1,30 @@ +#!/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 |
