Большая тета-нотация алгоритма сортировки вставки

Я изучаю асимптотические обозначения из книги, и я не могу понять, что означает автор. Я знаю, что if f(n) = Θ(n^2) then f(n) = O(n^2). Однако из слов автора я понимаю, что для алгоритма сортировки вставки f(n) = Θ(n) и f(n)=O(n^2).

Почему? Изменяется ли большая омега или большая тэта с разными входами?

Он говорит, что:

"Однако оценка Θ (n ^ 2), связанная с наихудшим временем выполнения сортировки вставки, не означает, что на время ввода сортировки на каждом входе привязано Θ (n ^ 2).

Однако для большой-ой нотации он отличается. Что он имеет в виду? В чем разница между ними?

Я так смущен. Я скопирую его ниже:

Так как O-нотация описывает верхнюю границу, когда мы используем ее для привязки наихудшего хода время алгоритма, мы имеем оценку времени работы алгоритма на каждом входе. Таким образом, O (n ^ 2), связанная с наихудшим временем выполнения сортировки вставки, также относится к ее запуску время на каждом входе. Θ (n ^ 2), связанный с наихудшим временем выполнения сортировки вставки, однако, не означает, что Θ (n ^ 2), связанное с временем выполнения сортировки вставки на каждом входе. Например, когда вход уже отсортирован, сортировка вставки выполняется в Θ (n) времени.

4
10 окт. '12 в 12:18
источник поделиться
4 ответов

Изменена ли большая омега или большая тэта с разными входами?

Да. Чтобы дать более простой пример, рассмотрите линейный поиск в массиве слева направо. В худшем и среднем случае этот алгоритм принимает f (n) = a × n/2 + b ожидаемые шаги для некоторых констант a и b. Но когда левому элементу гарантируется, что вы всегда держите ключ, который вы ищете, он всегда принимает шаги + b.

Так как Θ обозначает строгую оценку, а Θ (n)!= Θ (n²), то Θ для двух типов ввода отличается.

РЕДАКТИРОВАТЬ: как для Θ, так и для большого вывода O на одном и том же входе, да, это совершенно возможно. Рассмотрим следующий (предположительно тривиальный) пример.

Когда мы устанавливаем n в 5, тогда n = 5 и n < 6 являются истинными. Но когда мы устанавливаем n в 1, тогда n = 5 является ложным, а n < 6 все еще верно.

Аналогично, big-O является только верхней границей, как и < на числах, а Θ - строгая оценка as =.

(На самом деле, Θ больше напоминает a < n < b для констант a и b, то есть определяет что-то, аналогичное диапазону чисел, но принцип тот же.)

3
10 окт. '12 в 12:29
источник

Обратитесь к редакции CLRS 3  Страница -44 (Асимптотические обозначения, функции и время работы) В нем говорится -

Даже если мы используем асимптотическую нотацию применительно к времени работы алгоритма, we need to understand which running time we mean. Иногда нас интересует время работы worst-case. Often, however, we wish to characterize the running time no matter what the input. In other words, we often wish to make a blanket statement that covers all inputs, not just the worst case.

Выдержки из вышеуказанного параграфа:

  • Наихудший случай обеспечивает максимальный предел для времени работы алгоритма. Таким образом, O (n ^ 2), связанная с наихудшим временем выполнения сортировки вставки, также относится к его времени выполнения на каждом входе.

  • Но Theta(n^2), связанный с наихудшим временем выполнения сортировки вставки, не означает, что Theta(n^2) привязан к времени выполнения сортировки вставки на каждом входе. Поскольку наилучшее время выполнения сортировки вставки дает Theta(n). (Когда список уже отсортирован)

  • Обычно мы записываем временную сложность алгоритма worst case, но когда лучший случай и средний случай попадают в отчетность, сложность времени варьируется в зависимости от этих случаев.

1
06 февр. '17 в 18:02
источник

мы имеем оценку на время работы алгоритма на каждом входе

Это означает, что если есть набор входов с временем выполнения n^2, а у других меньше, тогда алгоритм O(n^2).

Θ (n ^ 2), связанный с наихудшим временем выполнения сортировки вставки, однако, не означает, что Θ (n ^ 2), связанное на время работы вставка сортировка на каждом входе

Он говорит, что обратное неверно. Если алгоритм O(n^2), это не означает, что каждый отдельный вход будет работать с квадратичным временем.

-1
10 окт. '12 в 12:28
источник

Моя академическая теория по алгоритму сортировки вставки далека в прошлом, но из того, что я понимаю в вашей copy-paste:

Знаки большой O всегда описывают наихудший случай, но big-Theta описывают какое-то среднее значение для типичных данных.

взгляните на это: В чем разница между Θ (n) и O (n)?

-3
10 окт. '12 в 12:29
источник

Посмотрите другие вопросы по меткам или Задайте вопрос