Сложность операций при работе с основными коллекциями значений в Python

В данной статье рассмотрим сложность основных операций, в нотации O (О большое) при работе с различными коллекциями значений в Python.

В данной статье рассмотрим сложность основных операций, в нотации O (О большое) при работе с различными коллекциями значений в Python.

Большинство операций со списком и кортежем имеют сложность O(N). Рассмотрим основные из них:

  • len(lst) - O(1)
  • lst.append(5) - O(1)
  • del lst[i] - O(N)
  • lst.remove(...) - O(N)
  • lst.reverse() - O(N)
  • lst.sort() - O(N log N)
  • lst.pop() - O(1)

По сравнению со списком и кортежем множества большую часть операций выполняют со сложностью O(1). Рассмотрим основные из них:

  • len(s) -  O(1)
  • s.add(5) - O(1)
  • s.remove(5)  - O(1)
  • s.pop(i) - O(1)
  • s.clear() - O(1)

Здесь важно отметить, что операции удаления в множестве происходят быстрее, чем в списке.

Большинство операций словарей имеет сложность O(1). Рассмотрим основные из них:

  • d[k]  - O(1)
  • d[k] = v - O(1)
  • len(d) - O(1)
  • del d[k] - O(1)
  • d.keys() - O(1)
  • d.pop(k) - O(1)

Важно выбирать структуру данных, которая была бы оптимальной для конкретной задачи.

Например, если ожидается, что программа будет осуществлять частый поиск информации, словарь подойдет лучше. Но при этом, если необходимо просто хранить упорядоченный набор данных, то правильнее выбрать словарь или кортеж.

Тэги:
python
Дата публикации:
21.09.2023

avatar
master
Admin

Похожие статьи