Binary search: Difference between revisions
→{{header|ALGOL 68}}: Added missing ")", use remove formatted transput so can be used with a wider range of compilers.
(Added Algol W) |
(→{{header|ALGOL 68}}: Added missing ")", use remove formatted transput so can be used with a wider range of compilers.) |
||
Line 540:
=={{header|ALGOL 68}}==
<lang algol68>BEGIN
▲<lang algol68>MODE ELEMENT = STRING;
# Iterative: #
PROC iterative binary search = ([]ELEMENT hay stack, ELEMENT needle)INT: (
Line 559 ⟶ 557:
stop iteration:
out
);
# Recursive: #
PROC recursive binary search = ([]ELEMENT hay stack, ELEMENT needle)INT: (
Line 579 ⟶ 577:
[]ELEMENT hay stack = ("AA","Maestro","Mario","Master","Mattress","Mister","Mistress","ZZ"),
test cases = ("A","Master","Monk","ZZZ");
PROC test search = (PROC([]ELEMENT, ELEMENT)INT search, []ELEMENT test cases)VOID:
FOR case TO UPB test cases DO
Line 585 ⟶ 583:
INT index = search(hay stack, needle);
BOOL found = ( index <= 0 | FALSE | hay stack[index]=needle);
OD;
test search(iterative binary search, test cases);
test search(recursive binary search, test cases)
)
{{out}}
Shows iterative search output - recursive search output is the same.
<pre>
"A" near index 1
|