У меня есть определение алгоритма на месте от профессора, но я не понимаю его.
In-situ алгоритмы относятся к алгоритмам, которые работают с Θ (1) памятью.
Что это обозначает?
У меня есть определение алгоритма на месте от профессора, но я не понимаю его.
In-situ алгоритмы относятся к алгоритмам, которые работают с Θ (1) памятью.
Что это обозначает?
Ответы:
Сначала давайте распакуем, что означает .
Big , и большая Θ , классы функций. Там есть формальное определение здесь , но для целей данного вопроса, то мы говорим , что функция F в O ( 1 ) , если существует постоянная с , где для всех х , е ( х ) ≤ C . То есть f растет не более, чем постоянная функция.
Большое значение не имеет большого значения для константных функций, потому что при описании времени алгоритма или использования пространства не так много ниже константы. Но чтобы объяснить, что это значит, f ∈ Θ ( 1 ), если существуют такие константы c , d , что для всех x , d ≤ f ( x ) ≤ c . То есть, f растет, по крайней мере, так же быстро и, самое большее, так же быстро, как постоянная функция.
Какое отношение это имеет к использованию памяти? Рассмотрим некоторый алгоритм . Существует некоторая (математическая) функция, которая, учитывая вход n , дает максимальное использование памяти вашего алгоритма A на любом входе размера n . Давайте назовем эту функцию м е м .
Итак, теперь мы объединяем наши две концепции. Если алгоритм использует памяти, то его функция использования памяти находится в Θ ( 1 ) , что означает, что существует некоторое d , c такое, что для любого входа используемая память находится между d и c .
Короче говоря, это означает, что использование памяти алгоритмом находится в некотором постоянном диапазоне, независимо от ввода.
Обычно функция памяти не учитывает память, используемую для хранения входных данных алгоритма, так как в противном случае использование памяти всегда будет не менее .
Постоянная пространственная сложность алгоритма
Объем памяти, используемый вашим алгоритмом, не зависит от ввода.
Говорят, что алгоритм имеет постоянную пространственную сложность, если он использует фиксированное количество пространства. Это может быть переменных или массив из 10 элементов.
Тем не менее, алгоритмы in-situ выполняют предназначенную функцию на самом входе и, таким образом, требуют очень мало или вообще не требуют дополнительного места. Входные данные обычно перезаписываются выходными данными при выполнении алгоритма. ( ссылка )
In-situ алгоритмы не учитывают пространство, занимаемое входными данными, и учитывают только дополнительное пространство при расчете сложности пространства.