This algorithm searches an alphabetically sorted list of student names for a target name. The target name may or may not be in the list.
current = 0
found = False
overshot = False
while (current < len(studentList)) and (not found) and (not overshot):
if studentList[current] == targetName:
found = True
elif studentList[current] > targetName:
overshot = True
else:
current = current + 1
The use of the found variable helps to make the algorithm efficient by stopping the loop as soon as the target is located.
Describe how the use of the overshot variable also helps to make the algorithm efficient.