]
1. Определение
]
математическая нотация, которая описывает верхний предел времени выполнения или использование пространства алгоритма. Он обозначается как или (f (n)) , где f (n) является функцией, которая представляет время или пространство в зависимости от входного размера n .
]
]
2. Цель
]
]
]
сравнение алгоритмов - : позволяет сравнивать различные алгоритмы и выбирать наиболее эффективные для данной проблемы.
]
масштабируемость
: это помогает предсказать, как будет вести себя алгоритм, когда объем данных увеличится.
- ]
]
3. Анализ сложности
]
]
]
худший случай
: ссылается на сценарий, где алгоритм занимает больше времени или использует больше ресурсов. Большой или вообще относится к этому делу.
]
- лучший случай и средний случай : хотя они важны, они используются реже для Big O.
]
- ]
4. Пространство против Время
]
]
]
временная сложность
: это относится к времени, которое требуется для алгоритма для выполнения.
]
пространственная сложность - : относится к количеству дополнительной памяти, которую вы используете. У вас могут быть уступки, такие как или (1) (постоянное пространство) или
(линейное пространство).
- ]
Пример:
]
импорт Timeit
Импорт matplotlib.pyplot как plt
Импорт Cprofile
# O (1)
Def Constant_time_operation ():
возврат 42
# O (log n)
Def logarithmic_time_operation (n):
Count = 0
В то время как n> 1:
N // = 2
Счет = 1
возврат count
# Или (n)
def linear_time_operation (n):
Всего = 0
для я в диапазоне (n):
Всего = i
Общая доходность
# O (n log n)
def linear_logarithmic_time_operation (n):
Если n ]
Спасибо за чтение !!
Apóy Me Reacting and Investing
]
]