26 lines
761 B
Text
26 lines
761 B
Text
10 REM BINARY SEARCH
|
|
20 LET N=10
|
|
30 REM SORTED DATA
|
|
40 LET @(1)=-31,@(2)=0,@(3)=1,@(4)=2,@(5)=2
|
|
50 LET @(6)=4,@(7)=65,@(8)=83,@(9)=99,@(10)=782
|
|
60 LET X=2;GOSUB 500
|
|
70 GOSUB 200
|
|
80 LET X=5;GOSUB 500
|
|
90 GOSUB 200
|
|
100 STOP
|
|
190 REM PRINT RESULT
|
|
200 IF J<0 PRINT #1,X," IS NOT FOUND.";RETURN
|
|
210 PRINT #1,X," IS AT INDEX ",J,".";RETURN
|
|
460 REM BINARY SEARCH ALGORITHM
|
|
470 REM N - NUMBER OF ELEMENTS
|
|
480 REM X - SEARCHED ELEMENT
|
|
490 REM RESULT: J - INDEX OF X
|
|
500 LET L=0,H=N-1,F=0,M=L
|
|
510 IF L>H GOTO 570
|
|
520 IF F#0 GOTO 570
|
|
530 LET M=L+(H-L)/2
|
|
540 IF @(M)<X LET L=M+1;GOTO 510
|
|
550 IF @(M)>X LET H=M-1;GOTO 510
|
|
560 LET F=1;GOTO 510
|
|
570 IF F=0 LET J=-1;RETURN
|
|
580 LET J=M;RETURN
|