У меня возникла проблема с пониманием различий в этих трех обозначениях в худшем случае.

Худший случай большого o = верхняя граница, никогда не будет работать быстрее.

Худший случай большой омеги = нижняя граница, никогда не будет быстрее в худшем случае?

Наихудший случай большого тета = между нижней и верхней границей, будет ли работать между этими границами в худшем случае?

Редактировать:

Извините за непонятность. Я не уверен, что я правильно понимаю наихудший случай большого o, наихудший случай большой омеги и наихудший случай большой тэты. Я написал после "=" то, что я думаю.

1
Busquets_90 10 Фев 2021 в 17:44

1 ответ

Лучший ответ

То, что вы изложили, в целом кажется правильным. Важное различие, которое следует провести, - это различие между футляром и переплетом.

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

Граница - это функция, которая говорит, как ресурсы, используемые вашим алгоритмом - обычно время или пространство - изменяются при изменении входных данных. Верхняя и нижняя границы являются типичными.

Вы можете смешивать и сопоставлять регистры и границы по своему усмотрению.

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

Может быть, вы хотели бы знать нижнюю границу наихудшего случая, чтобы знать, насколько быстро ваше решение может быть - оптимально ли его поведение масштабирования для проблемы, которую вы пытаетесь решить. Например, мы знаем, что целочисленная сортировка на основе сравнения - это Омега (n log n) без каких-либо дополнительных предположений. Если вы напишете процедуру сортировки, достигнете ли вы этой границы или ваш метод будет медленнее?

Конечно, у анализа наилучшего случая тоже есть свои применения. Вы также можете поговорить об анализе среднего случая, взяв некоторое распределение входных данных данного параметра и найдя соответствующие границы; аналогичный вид анализа - это амортизированный анализ, где «случай» на самом деле представляет собой последовательность операций.

0
Patrick87 10 Фев 2021 в 15:25