|
Informatyka UJ forum Rocznik 2005 - czyli najlepsze forum w sieci
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Makros
pijak
Dołączył: 01 Gru 2005
Posty: 420
Przeczytał: 0 tematów
Skąd: Kraków
|
Wysłany: Pią 0:45, 03 Lut 2006 Temat postu: Złożoność obliczeniowa |
|
|
Mam mały problem dotyczący złożoności obliczeniowej, a tak dokładniej to z algorytmami o złożoności logarytmicznej... Niech no mi ktoś powie, poczym, moge poznać, że jakiś algorytm jest tejże złożoności a nie np. kwadratowej...? może jakieś krótkie przykłady z omówieniem, czym to się chrakteryzuje...
---edit---
no i czemu do jasnej.... w tym przykładzie:
Kod: | i <- 1
DOPÓKI i < n WYKONUJ
i <- i+4 ; j <- 1
DOPÓKI j < n WYKONUJ j <- 2 * j + 1 |
jest złożoność n log n ???
|
|
Powrót do góry |
|
|
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
exe
Gość
|
Wysłany: Pią 1:17, 03 Lut 2006 Temat postu: |
|
|
No ja to tak robie: Wieceej to niz n, mniej niz n^2, jakies mnozenia sa, zatem bedzie n log n :P Oznacza to, ze dla n = 10, wykonanych zostanie ~ 10*lg 10 iteracji wewnetrznej petli. samo lg n masz czesto przy jakis drzewach, grafach, wyszukiwaniu binarnym itp itd. (lg to log o podstawie 2).
To tak na chlopski rozum, dokladniej, precyzyjniej masz w notatkach z wykladu :P
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
jagm
zielony żul
Dołączył: 01 Lut 2006
Posty: 1421
Przeczytał: 0 tematów
|
Wysłany: Pią 1:37, 03 Lut 2006 Temat postu: Re: Złożoność obliczeniowa |
|
|
log n to znaczy, ze z kazdym wykonaniem pętli jesteś dwa razy bliżej końca niż poprzednio ;]
przykładem jest wyszukiwanie połówkowe:
jak masz n elementów, to przy każdym sprawdzeniu, czy a[(L+R)/2] to nasz szukany x, ilość elementów do sprawdzenia zmniejsza się o około połowę.
Makros napisał: |
Kod: | i <- 1
DOPÓKI i < n WYKONUJ
i <- i+4 ; j <- 1
DOPÓKI j < n WYKONUJ j <- 2 * j + 1 |
jest złożoność n log n ??? |
najbardziej znaczącym (czy jak to tam było określone na wykładzie) działaniem jest j:=2*j+1
i teraz sprawdzasz ile razy jest wykonywane to działanie. pętla najbardziej zagnieżdżona ma log n, bo za każdym razem wartość j zwiększasz dwukrotnie. A zewnętrzna pętla wykona się n/4 razy (czyli dla uproszczenia n razy). Czyli całość ma n * log n
Przynajmniej ja to tak rozumiem i mam nadzieję, że dobrze ;]
|
|
Powrót do góry |
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
|