Сложность пространства при O (n ^ 2)

#algorithm #complexity-theory #space-complexity

#алгоритм #сложность -теория #сложность пространства

Вопрос:

Итак, Everbody знаком с постоянной O(1) или линейной O(N) сложностью пространства.

Но у меня есть вопрос, есть ли какой-либо случай, когда пространственная сложность алгоритма пропорциональна O(NLogn) или O(N^2) . Если это возможно, в чем его преимущество.

PS- Я исследовал различные сайты, но не получил удовлетворительного решения.

Комментарии:

1. Вы должны перенести это на обсуждение

2. Любой алгоритм, который возвращает результат размера f(N) , занимает как минимум O(f(N)) дополнительное пространство (при условии, конечно, что результат не разделяет пространство с вводом).

Ответ №1:

Почти любой алгоритм можно заставить использовать O(N^2) память. Рассмотрим некоторые f(a,b) , где 0 < a,b < N и f дорого вычислять. Для сокращения времени выполнения очевидным решением является использование справочной таблицы размера N * N с предварительно рассчитанными результатами. Такой компромисс между временем выполнения и использованием памяти может быть сделан очень часто.

В общем, алгоритмы, использующие матрицы, обычно используют N*N память для хранения матриц. Например, чтобы повернуть точку в N=3 измерениях, вы можете использовать матрицу 3x3 вращения.