Рассматриваем, левую и правую границы отрезка массива, где находится нужный нам элемент. Исследования начинаются с первого элемента отрезка. Если искомое значение не равно значению функции в данной точке, то осуществляется переход к следующей точке. Т.е., в результате каждой проверки область поиска уменьшается на один элемент.
def linearSearch(li, x):
i = 0
length = len(li)
while ili[i]:
i+=1
return i if iНиклаус Вирт описал модернизацию метода, при которой мы избавляемся от одного сравнения на каждом витке цикла. А именно от проверки окончания строки. Для этого мы добавляем искомый элемент в самый конец, что гарантирует нам остановку по одному условию, а финальная проверка на позицию найденного элемента, покажет подставной он или нет)
def linearSearchVirt(li, x):
i = 0
length = len(li)-1
while x x<> li[i]:
i+=1
return i if iВот и весь линейный поиск!)
Но есть более интересный метод - двоичный поиск, милости просим к изучению.Автор: Pavel Petropavlov
