Złożoność algorytmu

gosia301
Użytkownik
Użytkownik
Posty: 94
Rejestracja: 10 maja 2009, o 18:13
Płeć: Kobieta
Pomógł: 1 raz

Złożoność algorytmu

Post autor: gosia301 »

ALG(A[1..n],x)
f ← false
i ← 1
j ← n
while i ≤ j and (not f ) do
m ← (i + j) div 2
if A[m]=x then f ← true
else if x > A[m] then i ← m+1
else j ← m – 1
return f

a) Podaj dokładną pesymistyczną złożoność czasową algorytmu ALG ze względu na porównania
b) Podaj dokładną pesymistyczną złożoność czasową algorytmu ALG ze względu na podstawienia
c) Podaj rząd złożoności pamięciowej algorytmu ALG. UWAGA: Podane odpowiedzi uzasadnij.
Awatar użytkownika
kadiii
Użytkownik
Użytkownik
Posty: 642
Rejestracja: 20 gru 2005, o 21:04
Płeć: Mężczyzna
Lokalizacja: Wrocław
Pomógł: 130 razy

Złożoność algorytmu

Post autor: kadiii »

Jest to algorytm binarnego poszukiwania. Wsk. W każdym obiegu petli poszukujemy w zbiorze o połowę mniejszym(z dokładnością do części całkowitej).
MGT
Użytkownik
Użytkownik
Posty: 107
Rejestracja: 7 lis 2006, o 12:03
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Pomógł: 20 razy

Złożoność algorytmu

Post autor: MGT »

optymistyczny jest O(1), bo można trafić od razu.

z oszacowaniem pesymistycznego trochę gorzej, bo to zależy, czy tablica A jest posortowana, bo jeśli nie, to ta pętla może być chyba nieskończona ;p (późno jest, mogę bzdury mówić )
Zakładając, że A jest uporządkowane, to mamy standardowe "dziel i zwyciężaj" i złożoność O(logn).
spajder
Użytkownik
Użytkownik
Posty: 735
Rejestracja: 7 lis 2005, o 23:56
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 2 razy
Pomógł: 133 razy

Złożoność algorytmu

Post autor: spajder »

Wyszukiwanie binarne nie działa na tablicach nieposortowanych (tzn. może produkować błędne wyniki, ale jak najbardziej się zakończy). Natomiast maksymalna ilość wykonań to \(\displaystyle{ \lceil \log_2{n}\rceil]}\) wykonań pętli, trzeba jeszcze zliczyć instrukcje wewnątrz każdej pętli (w założeniu, że poszukiwany element nie istnieje)
MGT
Użytkownik
Użytkownik
Posty: 107
Rejestracja: 7 lis 2006, o 12:03
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Pomógł: 20 razy

Złożoność algorytmu

Post autor: MGT »

Z tym brakiem zakończenia namieszałem (w warunku jest and, a nie or ;p). Niemniej jednak w treści nie napisano, że A jest jakkolwiek uporządkowane, więc algorytm może zakończyć się niepowodzeniem po takiej ilości porównań, jak napisano powyżej.
Awatar użytkownika
kadiii
Użytkownik
Użytkownik
Posty: 642
Rejestracja: 20 gru 2005, o 21:04
Płeć: Mężczyzna
Lokalizacja: Wrocław
Pomógł: 130 razy

Złożoność algorytmu

Post autor: kadiii »

Myślę, że powzięcie założenia o uporządkowaniu w zbiorze jest jak najbardziej na miejscu. Inaczej ten algorytm nie robiłby nic sensownego. Np. ciekawe byłoby stwierdzanie złożoności w rekurencji do problemu Collatza(może ktoś sie pokusi )
ODPOWIEDZ