CSC1108_Labs/Practices/Searching/BinarySearch.py

46 lines
1.1 KiB
Python
Executable File

def iterativeBinarySearch(array, value):
left = 0
right = len(array)
while left <= right:
mid = (left + right) >> 1
if array[mid] == value:
return mid
elif array[mid] < value:
left = mid + 1
else:
right = mid - 1
return -1
def binarySearchWithForLoop(array, value):
left = 0
right = len(array)
for i in range(len(array)):
mid = (left + right) >> 1
if array[mid] == value:
return mid
elif array[mid] < value:
left = mid + 1
else:
right = mid - 1
return -1
def recursiveBinarySearch(array, value, left, right):
if left > right:
return -1
mid = (left + right) >> 1
if array[mid] == value:
return mid
elif array[mid] < value:
return recursiveBinarySearch(array, value, mid + 1, right)
else:
return recursiveBinarySearch(array, value, left, mid - 1)
array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(iterativeBinarySearch(array, 10))
print(recursiveBinarySearch(array, 4, 0, len(array) - 1))
print(binarySearchWithForLoop(array, 5))