Binary search: Difference between revisions
→{{header|Quackery}}: generalised
Thundergnat (talk | contribs) m (→{{header|Ol}}: Tweak irregular header markup) |
(→{{header|Quackery}}: generalised) |
||
Line 5,499:
Written from pseudocode for rightmost insertion point, iterative.
<lang Quackery> [ stack ] is value.bs
[ stack ] is nest.bs
[
swap
[ 2dup < if done
2dup + 1 >>
nest.bs share over peek
value.bs share
test.bs share do iff
[ 1 - unrot nip ]
again
[ 1+ nip ] again ]
drop
nest.bs take over peek
value.bs take
test.bs share do
▲ dup dip [ not + ] ] is binarysearch ( [ n --> n b )
dip [ test.bs take do ]
or not
dup dip [ not + ] ] is bsearchwith ( n n [ n --> n b )
[ dup echo
over size 1 - 0 swap 2swap
bsearchwith < iff
[ say " was identified as item " ]
else
[ say " could go into position " ]
echo
say "." cr ] is task
{{out}}
|