1
0
Fork 0
mirror of https://github.com/jashkenas/coffeescript.git synced 2022-11-09 12:23:24 -05:00
jashkenas--coffeescript/examples/beautiful_code/binary_search.coffee
2010-07-29 00:03:42 -04:00

16 lines
No EOL
502 B
CoffeeScript

# 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
puts 2 is index [10, 20, 30, 40, 50], 30
puts 4 is index [-97, 35, 67, 88, 1200], 1200
puts 0 is index [0, 45, 70], 0