Just another update

This commit is contained in:
Ingy döt Net 2015-02-20 00:35:01 -05:00
parent a25938f123
commit 00a190b0a6
6591 changed files with 94363 additions and 23227 deletions

View file

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

View file

@ -0,0 +1,9 @@
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

View file

@ -0,0 +1,8 @@
do (n = 12) ->
odds = (it for it in [1..n] by 2)
result = (it for it in \
(binarySearch odds, it for it in [0..n]) \
when not isNaN it)
console.assert "#{result}" is "#{[0...odds.length]}"
console.log "#{odds} are odd natural numbers"
console.log "#{it} is ordinal of #{odds[it]}" for it in result

View file

@ -1,16 +0,0 @@
binsearch = (arr, k) ->
low = 0
high = arr.length - 1
while low <= high
mid = Math.floor (low + high) / 2
return mid if arr[mid] == k
if arr[mid] < k
low = mid + 1
else
high = mid - 1
null
arr = [1,3,5,7,9,11]
for i in [0..12]
pos = binsearch arr, i
console.log "found #{i} at pos #{pos}" if pos?