Co oznacza pamięć Θ (1)?


13

Mam definicję algorytmu in-situ od profesora, ale nie rozumiem tego.

Algorytmy in-situ odnoszą się do algorytmów działających z pamięcią Θ (1).

Co to znaczy?



4
„Mówi się, że algorytm jest algorytmem in situ lub algorytmem na miejscu, jeżeli dodatkowa ilość pamięci wymagana do wykonania algorytmu wynosi O (1), to znaczy [pamięć] nie przekracza stałej bez względu na to, jak duża dane wejściowe . Na przykład heapsort jest algorytmem sortowania na miejscu. ” en.wikipedia.org/wiki/In_situ#Computer_science
Auberon

@Auberon, należy dodać, że nakłada dodatkowy wymóg niż O ( 1 ) : że całkowita pamięć używana w jakimkolwiek konkretnym wywołaniu nie spada poniżej stałej bez względu na wielkość danych wejściowych. Θ(1)O(1)
Olathe

1
@Olathe Nie widziałem jeszcze algorytmu, który wykorzystuje więcej niż zero, ale mniej niż stałą dowolnego zasobu
adrianN

@adrianN, szyfrowanie plików AES odbywa się przy użyciu pamięci RAM w stałej górnej granicy. Przetwarzasz blok naraz, każdy blok wymaga przetworzenia tej samej ilości pamięci RAM, a pamięć RAM może być ponownie użyta z jednego bloku do drugiego. Prostszym przykładem jest konwersja wszystkich liter w pliku zakodowanym w ASCII na wielkie litery. Możesz odczytać plik, powiedzmy 4096 bajtów, przetworzyć ten 4096 bajtów, zapisać wyniki tego bloku i ponownie użyć tej samej pamięci RAM dla następnego bloku.
Olathe

Odpowiedzi:


13

Θ(1)

OΘfO(1)cxf(x)Cf

ΘfΘ(1)c,dxdf(x)cf

AnAnmem

Θ(1)Θ(1)d,cdc

Krótko mówiąc, oznacza to, że użycie pamięci algorytmu jest w pewnym stałym zakresie, niezależnie od danych wejściowych.

Θ(n)


„nie zależy skutecznie od jego wkładu”. - dla której definicji „skutecznie”?
Raphael

Podobnie jak w, używana pamięć może się zmieniać w zależności od danych wejściowych, ale tylko w określonym przedziale czasowym. Możesz go edytować, jeśli możesz wymyślić lepsze sformułowanie.
jmite

dc

pomocny byłby prosty przykład ilustrujący
wer

8

Stała złożoność algorytmu w przestrzeni

Ilość pamięci wykorzystywanej przez algorytm jest niezależna od danych wejściowych.

1010

Jednak algorytmy In-situ wykonują zamierzoną funkcję na samym wejściu, a zatem wymagają bardzo mało lub nie wymagają dodatkowej przestrzeni. Dane wejściowe są zwykle nadpisywane przez dane wyjściowe podczas wykonywania algorytmu. ( ref )

Algorytmy in-situ nie uwzględniają przestrzeni zajmowanej przez dane wejściowe i uwzględniają tylko dodatkową przestrzeń, obliczając złożoność przestrzeni.


3
Θ(1)

@Olathe Przestrzeń zajmowana przez każde wejście pod względem bajtów i liczba danych wejściowych pod względem liczby nie są dwiema różnymi koncepcjami?
Prateek

0

Oznacza to, że dodatkowa ilość pamięci wymagana dla algorytmu nie jest większa niż pewna stała ilość, która nie zależy od wielkości wejścia dla wystarczająco dużego wejścia.


2
ΘOΩO(x2)f(x)=3x2 f(x)=xΘ(x2)f(x)=3x2f(x)=x
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.