[Algorytmy] Złożoność czasowa algorytmów

Awatar użytkownika
Quaerens
Użytkownik
Użytkownik
Posty: 2489
Rejestracja: 5 wrz 2007, o 13:36
Płeć: Mężczyzna
Podziękował: 439 razy
Pomógł: 181 razy

[Algorytmy] Złożoność czasowa algorytmów

Post autor: Quaerens »

Niech Alg1, Alg2 i Alg3 będą algorytmami o następującej złożoności czasowej względem danych rozmiaru n:

\(\displaystyle{ T(Alg1,n)=\Theta (nlgn) \\ A(Alg2,n)=\Theta(n), W(Alg2,n)=O(n^2), \\ A(Alg3,n)=\Theta (\sqrt{n}),W(Alg3,n)=\Omega(nlgn)}\)

Określ możliwie dokładnie złożoność czasową następująych algorytmów:

A)

Kod: Zaznacz cały

void Algorytm(int n) {
for(i :=0;i<n;i=i+1)
Alg1(n)
}
B)

Kod: Zaznacz cały

void Algorytm(int n) {
for(i :=0;i<n;i=i+1) {
Alg2(n);
Alg3(n);
}
}
Ostatnio zmieniony 31 sie 2011, o 15:41 przez Quaerens, łącznie zmieniany 2 razy.
Crizz
Użytkownik
Użytkownik
Posty: 4094
Rejestracja: 10 lut 2008, o 15:31
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 12 razy
Pomógł: 805 razy

[Algorytmy] Złożoność czasowa algorytmów

Post autor: Crizz »

Mógłbyś wytłumaczyć oznaczenia? Co oznaczają \(\displaystyle{ T,W,A}\)?
Awatar użytkownika
argv
Użytkownik
Użytkownik
Posty: 569
Rejestracja: 27 maja 2009, o 01:27
Płeć: Mężczyzna
Podziękował: 51 razy
Pomógł: 66 razy

[Algorytmy] Złożoność czasowa algorytmów

Post autor: argv »

Obstawiam Average i Worst. T nie wiem.
Awatar użytkownika
Quaerens
Użytkownik
Użytkownik
Posty: 2489
Rejestracja: 5 wrz 2007, o 13:36
Płeć: Mężczyzna
Podziękował: 439 razy
Pomógł: 181 razy

[Algorytmy] Złożoność czasowa algorytmów

Post autor: Quaerens »

A już zrobiłem. Teraz podpunkt B.
Crizz
Użytkownik
Użytkownik
Posty: 4094
Rejestracja: 10 lut 2008, o 15:31
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 12 razy
Pomógł: 805 razy

[Algorytmy] Złożoność czasowa algorytmów

Post autor: Crizz »

Rozumiem, że \(\displaystyle{ T}\) to po prostu funkcja kosztu.

No a czym się różni przykład B? Wystarczy logicznie pomyśleć. Mamy \(\displaystyle{ T(Algorytm,n)=\Theta(n) \cdot T(Alg3,n)}\). Któa klasa funkcji dla \(\displaystyle{ A}\) jest większa? Który warunek na \(\displaystyle{ W}\) ma zastosowanie? Zauważ, że nie możemy znaleźć klasy \(\displaystyle{ O}\) dla \(\displaystyle{ W}\), skoro mamy w trzecim algorytmie tylko dolne oszacowanie.
Awatar użytkownika
Quaerens
Użytkownik
Użytkownik
Posty: 2489
Rejestracja: 5 wrz 2007, o 13:36
Płeć: Mężczyzna
Podziękował: 439 razy
Pomógł: 181 razy

[Algorytmy] Złożoność czasowa algorytmów

Post autor: Quaerens »

No trochę nie rozumie i gubie się, dlaczego akurat dałeś tam Alg3 skoro mamy T(Alg1), wydaje mi się, że winno być to zaznaczone, co kolwiek by to nie znaczyło. Proszę o dalsze wskazówki.
Crizz
Użytkownik
Użytkownik
Posty: 4094
Rejestracja: 10 lut 2008, o 15:31
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 12 razy
Pomógł: 805 razy

[Algorytmy] Złożoność czasowa algorytmów

Post autor: Crizz »

Hmmm... przepraszam, coś mi się pomyliło. Zamiast \(\displaystyle{ T(Alg3,n)}\) powinno być \(\displaystyle{ T(Alg2,n)+T(Alg3,n)}\) i wyliczając \(\displaystyle{ A}\), bierzesz pod uwagę tę z funkcji \(\displaystyle{ A(Alg2,n),A(Alg3,n)}\), która jest większa.
ODPOWIEDZ