summaryrefslogtreecommitdiff
path: root/assignments/a1.rb
diff options
context:
space:
mode:
Diffstat (limited to 'assignments/a1.rb')
-rw-r--r--assignments/a1.rb30
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