Posts: 4,698
Threads: 222
Joined: Apr 2022
Reputation:
322
01-25-2024, 10:48 PM
(This post was last modified: 01-25-2024, 10:55 PM by bplus.)
Binary search of an array in alpha order call it arr$()
Mark the first item low = 1 mark the last item high = number of items
recalcMiddle:
if low > high then the item is not found in arr$() and you are done with unsuccessful search.
then middle = int(low + high)/2
now if the arr$(middle) > search item then move high to middle - 1 goto recalcMiddle
now if arr$(middle) < search item then low = middle + 1 goto recalcMiddle
now if arr$(middle) = search item then you've found it and are done!
You play the game, guess my number from 1 to 100, in just the same way!
724 855 599 923 575 468 400 206 147 564 878 823 652 556 bxor cross forever
Posts: 799
Threads: 140
Joined: Apr 2022
Reputation:
33
Great! Thanks bplus, I knew you'd come through!
That's clear enough even for me.
Now, back to work (or play) fo me.
Of all the places on Earth, and all the planets in the Universe, I'd rather live here (Perth, Western Australia.)

Please visit my Website at:
http://oldendayskids.blogspot.com/
Posts: 4,698
Threads: 222
Joined: Apr 2022
Reputation:
322
Good luck!
724 855 599 923 575 468 400 206 147 564 878 823 652 556 bxor cross forever
Posts: 3,447
Threads: 376
Joined: Apr 2022
Reputation:
345
Another very simple way is to just read the whole file into one string, and then use INSTR with your search term.
Posts: 4,698
Threads: 222
Joined: Apr 2022
Reputation:
322
(01-26-2024, 12:10 AM)SMcNeill Wrote: Another very simple way is to just read the whole file into one string, and then use INSTR with your search term.
Oh yeah that's nice too!
here I made a little AI Game to watch for Guess Number:
Code: (Select All)
'2024-01-25 update
DefInt A-Z
While 1
Hi = 101: Lo = 0: number = Int(Rnd * 100) + 1
' number = 1 'test limits
' number = 100
Do
guess = Int((Hi + Lo) / 2)
Print "AI guesses the number ("; _Trim$(Str$(number)); ") as"; guess
If guess < number Then Print "low": Lo = guess + 1
If guess > number Then Print "high": Hi = guess - 1
Loop Until guess = number
Input "Yeah, press enter for another..."; w$
Cls
Wend
724 855 599 923 575 468 400 206 147 564 878 823 652 556 bxor cross forever