book = [ "Archaeology", "Art", "Biology", "Chemistry", "Computing", "English", "French", "Geography", "History", "Maths", "Psychology"] found = False # This is a flag - is it found or not? left = 0 # Set left to 0 (first item in the list - Archaeology) right = len(book) - 1 # Set right to the length of the list minus one (last item in the list) find = "Maths" #Repeat the following until item found, or you have check every item in the list while found == False and left<=right: mid = (left + right) // 2 # Calculates the midpoint if book[mid] == find: # Check does the item we're looking at == search item found = True # If it is, set found to True - we've found our search item! index = mid else: # If not found, move the left or right pointer to the midpoint # Depending on what side of the list we want to search next if find > book[mid]: left = mid + 1 else: right = mid - 1 # Return to the while loop and re-check the conditions # Continue repeating until item found or all items checked # Output if the item is found or not if found: print("Item successfully found at position", index) else: print("Search term not found.")