Binary search: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) m (Automated syntax highlighting fixup (second round - minor fixes)) |
(→{{header|Minimal BASIC}}: Corrected. Minimal BASIC does not have the operators OR, AND, NOT.) |
||
Line 1,608: | Line 1,608: | ||
{{works with|Commodore BASIC|3.5}} |
{{works with|Commodore BASIC|3.5}} |
||
{{works with|Nascom ROM BASIC|4.7}} |
{{works with|Nascom ROM BASIC|4.7}} |
||
<syntaxhighlight lang=" |
<syntaxhighlight lang="basic"> |
||
10 REM Binary search |
10 REM Binary search |
||
20 LET N = 10 |
20 LET N = 10 |
||
Line 1,640: | Line 1,640: | ||
520 LET F = 0 |
520 LET F = 0 |
||
530 LET M = L |
530 LET M = L |
||
540 IF L > H |
540 IF L > H THEN 650 |
||
550 |
550 IF F <> 0 THEN 650 |
||
560 |
560 LET M = L+INT((H-L)/2) |
||
570 |
570 IF A(M) >= X THEN 600 |
||
580 |
580 LET L = M+1 |
||
590 GOTO 540 |
|||
590 IF A(M) <= X THEN 620 |
|||
600 |
600 IF A(M) <= X THEN 630 |
||
610 |
610 LET H = M-1 |
||
620 |
620 GOTO 540 |
||
630 |
630 LET F = 1 |
||
640 |
640 GOTO 540 |
||
650 |
650 IF F = 0 THEN 680 |
||
660 |
660 LET I1 = M |
||
670 |
670 RETURN |
||
680 |
680 LET I1 = -1 |
||
690 RETURN |
|||
</syntaxhighlight> |
</syntaxhighlight> |
||
=={{header|BASIC256}}== |
=={{header|BASIC256}}== |
||
====Recursive Solution==== |
====Recursive Solution==== |