В программировании есть концепция сложности алгоритмов. Она показывает, сколько операций потребуется в наихудшем случае для достижения результата. Принятое обозначение O() [о большое]
Сравнивая сложность двух алгоритмов, можно выбрать наиболее подходящий для конкретной задачи.
Давайте рассмотрим пример простого поиска перебором: def simple_search(digit_list: list[int], need_digit: int) -> tuple[int | None, int]:
"""
Простой поиск вхождения числа перебором. Если значения нет -None
:param digit_list: список чисел для поиска
:type digit_list: list[int]
:param need_digit: искомое число
:type need_digit: int
:return: индекс элемента (None - если нет) и количество итераций
:rtype: tuple[int | None, int]
"""
iteration: int = 0
for index, digit in enumerate(digit_list):
iteration = iteration + 1
if digit == need_digit:
return index, iteration
return None, iteration
example_digit_list: list[int] = list(range(0,