Just another update
This commit is contained in:
parent
a25938f123
commit
00a190b0a6
6591 changed files with 94363 additions and 23227 deletions
8
Task/Binary-search/CoffeeScript/binary-search-1.coffee
Normal file
8
Task/Binary-search/CoffeeScript/binary-search-1.coffee
Normal 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
|
||||
9
Task/Binary-search/CoffeeScript/binary-search-2.coffee
Normal file
9
Task/Binary-search/CoffeeScript/binary-search-2.coffee
Normal 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
|
||||
8
Task/Binary-search/CoffeeScript/binary-search-3.coffee
Normal file
8
Task/Binary-search/CoffeeScript/binary-search-3.coffee
Normal 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
|
||||
|
|
@ -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?
|
||||
Loading…
Add table
Add a link
Reference in a new issue