Sobes.tech
Back to questions
Junior — Middle
74

Как определить временную сложность операции поиска элемента в односвязном или массиве на примере списков?

Answer from AI

sobes.tech AI

Временная сложность поиска элемента зависит от структуры данных:

  • Односвязный список: поиск элемента требует последовательного обхода с начала списка до нужного элемента, так как прямого доступа по индексу нет. В худшем случае нужно пройти весь список — сложность O(n).

  • Массив (список в Python): доступ к элементу по индексу происходит за константное время O(1), так как элементы расположены в памяти подряд. Но если нужно найти элемент по значению (без знания индекса), придётся перебрать элементы — O(n).

Пример в Python:

# Поиск по значению в списке
lst = [1, 2, 3, 4, 5]
value = 3
for i in lst:
    if i == value:
        print("Найдено")
        break

Здесь сложность O(n), так как в худшем случае придётся проверить все элементы.

В односвязном списке поиск по значению аналогичен — перебор элементов с начала до конца.