added binary search example -- chapter 6 of beautiful code

This commit is contained in:
Jeremy Ashkenas
2010-01-17 16:18:24 -05:00
parent 4a32c58221
commit e514a39dd2
2 changed files with 16 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
# Beautiful Code, Chapter 6.
# The implementation of binary search that is tested.
# Return the index of an element in a sorted list. (or -1, if not present)
index: list, target =>
[low, high]: [0, list.length]
while low < high
mid: (low + high) >> 1
val: list[mid]
return mid if val is target
if val < target then low: mid + 1 else high: mid
return -1
print(2 is index([10, 20, 30, 40, 50], 30))
print(4 is index([-97, 35, 67, 88, 1200], 1200))
print(0 is index([0, 45, 70], 0))