RosettaCodeData/Task/Binary-search/CoffeeScript/binary-search-2.coffee

10 lines
243 B
CoffeeScript

binarySearch = (xs, x) ->
[low, high] = [0, xs.length - 1]
while low <= high
mid = Math.floor (low + high) / 2
switch
when xs[mid] > x then high = mid - 1
when xs[mid] < x then low = mid + 1
else return mid
NaN