Быстрый вопрос о записи Big-O - PullRequest
1 голос
/ 14 октября 2010

Итак, скажем, у нас есть функция, такая как 6wn ^ 2 - 6wn + 6w, будет ли обозначение big-o быть O (n ^ 2) или O (wn ^ 2)? Вопрос о наборе задач просит меня написать эту функцию в форме Big-O в терминах w и n, так что я думаю, что это вторая функция, но я никогда не видел такой большой записи O, такой как 2 термина, поэтому я немного запутался.

Ответы [ 4 ]

1 голос
/ 14 октября 2010

Если функция f (n) равна O (g (n)) для некоторой функции g (x), это означает, что f (n) ограничено над асимптотически над g (n). В основном это означает, что для больших значений n g (n) будет больше, чем f (n).

(Более формально, мы могли бы сказать, что f (n) есть O (g (n)) тогда и только тогда, когда существует такой N, что g (n)> f (n) для всех n> N )


Теперь в вашем случае пусть f (n) = 6wn ^ 2 - 6wn + 6w. Тогда f (n) - это одновременно O (n ^ 2) и O (wn ^ 2). Это потому, что оба являются асимптотическими верхними оценками для f (n). Фактически, f (n) также является O (n ^ 2 ^ 2 ^ 2 ^ 2 ^ 2 ^ 2 ^ 2).

Однако лучшим ответом для вас, вероятно, будет то, что f (n) равно O (wn ^ 2), поскольку оно включает в себя w, что и было задано в вопросе.

Обратите внимание, что на практике мы обычно удаляем все коэффициенты и несущественные степени из g (n). Причина в том, что вы получаете больше информации о функции, если вы представляете нижнюю верхнюю границу, а не верхнюю. Например, если я скажу вам, что мой алгоритм быстрого поиска O (n ^ (1000!)), Я не буду вам ничего особо рассказывать. С другой стороны, если я скажу вам, что это был O (n ^ 2), я дам вам больше информации - но оба могут быть правильными.

0 голосов
/ 14 октября 2010

Поскольку вопрос просит вас написать в терминах обоих, второй - это притворный ответ.

В общем случае нормально иметь две переменные в нотации big-O, если входной размер определяется двумя переменными и они не зависят друг от друга.

Примером этого является алгоритм Дейкстры , который имеет худшую производительность O (| E | + | V | log | V |) . Размер входного графа определяется количеством вершин (V) и количеством ребер (E). Представление матрицы смежности в конечном итоге приводит к E = V ^ 2, поэтому, если бы мы использовали алгоритм Дейкстры с матрицей смежности (не делайте этого, это плохая идея), мы бы передали лучшую информацию с помощью O (V ^ 2 +) | V | log | V |) , что аналогично просто O (V ^ 2) .

0 голосов
/ 14 октября 2010

Технически, оба верны, но если вопрос задает его в терминах как w, так и n, то это второй.

0 голосов
/ 14 октября 2010

Вы правы, это второй.

...