Sunday, 6 May 2012

Binary Search in Liberty BASIC


MaxSize = 5
REDIM MyArray(MaxSize)
MyArray(1) = INT(RND(1) * 10) + 1
PRINT MyArray(1); SPACE$(1);
FOR I = 2 TO MaxSize
  MyArray(I) = MyArray(I - 1) + INT(RND(1) * 10) + 1
  PRINT MyArray(I); SPACE$(1);
NEXT I
PRINT

INPUT "Which number do you want to find: "; FindMe
Left = 1
Right = MaxSize
Time2Stop = 0
WHILE Time2Stop = 0
  Half = INT((Left + Right) / 2)
  IF FindMe < MyArray(Half) THEN
    Right = Half - 1
  ELSE
    Left = Half + 1
  END IF
  IF (FindMe = MyArray(Half) OR Left > Right) THEN
    Time2Stop = 1
  END IF
WEND
IF FindMe = MyArray(Half) THEN
  PRINT "Found it in location "; Half
ELSE
  PRINT "The number you want is not in the list."
END IF
END

No comments:

Post a Comment