Binary search: Difference between revisions

Content added Content deleted
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="gwbasic">
<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 OR F <> 0 THEN 640
540 IF L > H THEN 650
550 LET M = L+INT((H-L)/2)
550 IF F <> 0 THEN 650
560 IF A(M) >= X THEN 590
560 LET M = L+INT((H-L)/2)
570 LET L = M+1
570 IF A(M) >= X THEN 600
580 GOTO 540
580 LET L = M+1
590 GOTO 540
590 IF A(M) <= X THEN 620
600 LET H = M-1
600 IF A(M) <= X THEN 630
610 GOTO 540
610 LET H = M-1
620 LET F = 1
620 GOTO 540
630 GOTO 540
630 LET F = 1
640 IF F = 0 THEN 670
640 GOTO 540
650 LET I1 = M
650 IF F = 0 THEN 680
660 RETURN
660 LET I1 = M
670 LET I1 = -1
670 RETURN
680 RETURN
680 LET I1 = -1
690 RETURN
</syntaxhighlight>
</syntaxhighlight>

=={{header|BASIC256}}==
=={{header|BASIC256}}==
====Recursive Solution====
====Recursive Solution====