ALG6

ALG6



66 Rozdział 3. Analiza sprawności algorytmów

return pos;

else    //element został znaleziony

return -1;    // porażka poszukiwań

I

Idea tego algorytmu polega na sprawdzeniu, czy w badanym fragmencie tablicy lewy skrajny element jest poszukiwaną wartością x. Wywołując procedurę w następujący sposób: szukaj (lab,x) powodujemy przebadanie całej tablicy o rozmiarze n. Co można powiedzieć o złożoności obliczeniowej tego algorytmu, przyjmując jako kryterium ilość porównań wykonanych w pętli whdel Na tak sformułowane pytanie można się niestety tylko obruszyć i mruknąć „To zależy, gdzie znajduje się a"! Istotnie, mamy do czynienia z co najmniej dworna skrajnymi przypadkami:

•    znajdujemy się w komórce lab fi)], czyli T(nj=l i trafiamy na tzw. nąj-Icpszy przypadek;

•    w poszukiwaniu a- przeglądamy całą tablicę, czyli T(n)=n i trafiliśmy na tzw. najgorszy przypadek.

Jeśli na jedno precyzyjne pytanie: „Jaka jest złożoność obliczeniowa algorytmu liniowego przeszukiwania tablicy ^-elementowej?”, otrzymujemy dwie odpowiedzi, obarczone klauzulami „jeśli”, „w przypadku, gdy...”, to jedno jest pewne: odpowiedzi na pytanie ciągle nie mamy!

Błąd tkwił oczywiście w pytaniu, które powinno uwzględniać konfigurację danych, która w przypadku przeszukiwania tablicy ma kluczowe znaczenie. Proponowane odpowiedzi mogą być zatem następujące: rozważany algorytm ma w najlepszym przypadku złożoność praktyczną równą T(n)=l, a w najgorszym przypadku T(n)=n. Ponieważ jednak życie toczy się raczej równomiernie i nie balansuje pomiędzy skrajnościami (co jest dość prowokacyjnym stwierdzeniem, ale przyjmijmy chwilowo, że jest to prawda...), warto byłoby poznać również odpowiedź na pytanie: jaka jest średnia wartość T(n) tego algorytmu? Należ)' ono do gatunku nieprecyzyjnych, jest zatem stworzone dla statystyka. Nie pozostaje nam nic innego, jak przeprowadzić analizę statystyczną omawianego algorytmu.

Oznaczmy przezp prawdopodobieństwo, że a znajduje się w tablicy lab i przypuśćmy, że jeśli istotnie a znajduje się w tablicy, to wszystkie miejsca są jednakowo prawdopodobne.

Oznaczmy również przez Dni (gdzie 0 < i < n) zbiór danych, dla których a znajduje się na /-tym miejscu tablicy i D„„ zbiór danych, gdzie x jest nieobecne. Wedle przyjętych wyżej oznaczeń możemy napisać, że:

i z(D„)=l-p.


Wyszukiwarka

Podobne podstrony:
ALG6 56 Rozdział 3. Analiza sprawności algorytmów jest intuicyjnie bardzo proste, dalej będziemy uż
ALG6 76 Rozdział 3. Analiza sprawności algorytmów Analogicznie dla 2 otrzymamy: Vn > 1, A(n,2) =
ALG4 54 Rozdział 3. Analiza sprawności algorytmów Tematyką tego rozdziału jest tzw. złożoność oblic
Alg0 60 Rozdział 3. Analiza sprawności algorytmów •    Znak graficzny 3 należy czyta
ALG2 52 Rozdział 3. Analiza sprawności algorytmów Rys. 3 -
ALG4 64 Rozdział 3. Analiza sprawności algorytmów3.4. Przykład 3: Wpadamy w pułapkę Zadania z dwóch
ALG8 68 Rozdział 3. Analiza sprawności algorytmów3.6. Nowe zadanie: uprościć obliczenia! Nic sposób
ALG0 70 Rozdział 3. Analiza sprawności algorytmów Przykład: SRL=xn-3x„.i+2 x„ -2=0 daje
ALG2 72 Rozdział 3. Analiza sprawności algorytmówn o) = i, i = A + O, A =    1. Po t
ALG4 74 Rozdział 3. Analiza sprawności algorytmów • funkcja d(n) musi spełniać następującą własność
ALG8 78___Rozdział 3 Analiza sprawności algorytmówZad. 3-4 Proszę rozwiązać następujące równanie
ALG2 12 PrzedmowaRozdział 3 Analiza sprawności algorytmów Przegląd najpopularniejszych i najprostsz
ALG6 116 Rozdział 5. Struktury danych Iisla2.li int alfabetycznie(ELEMENT *q],ELEMENT *q2) { II czy
ALG3 Rozdział 3Analiza sprawności algorytmów Podstawowe kryteria pozwalające na wybór właściwego al
ALG8 58Rozdział 3. Analiza sprawności algorytmów konania programu zależy od danej wejściowej n? W l
ALG6 86 Rozdział 4. Algorytmy sortowania zamiany sąsiadujących ze sobą elementów, a druga będzie wy
12 PrzedmowaRozdział 3 Analiza sprawności algorytmów Przegląd najpopularniejszych i najprostszych
ET6 66 Rozdział 4. Turystyka jako sektor gospodarki 8.    Który z podsektorów turyst

więcej podobnych podstron