Binary search - AndrewMZ6/python_cheat_sheet GitHub Wiki

binary search
num is the number we're going to search

import math

num = 1411

numbers is list containing the num

numbers: list = list(range(106, 1939))

low: int = 0
high: int = len(numbers) - 1

mid is middle index number and guess is the number located at the index

mid = math.floor((low + high)/2)
guess = numbers[mid]

while guess != num:

	if guess > num:
		high = mid
		print(f'new ceiling number is {high}')
	elif guess < num:
		low = mid
		print(f'new floor number is {low}')

	mid = math.floor((low + high)/2)

	guess = numbers[mid]

	if guess == num:
		print(f'found it! The number index is {mid}')
		break

else:
	print('ELSE CASE')

print(guess)

output:

new floor number is 916
new ceiling number is 1374
new floor number is 1145
new floor number is 1259
new ceiling number is 1316
new floor number is 1287
new floor number is 1301
new ceiling number is 1308
new floor number is 1304
new ceiling number is 1306
found it! The number index is 1305
1411