ALG8

ALG8



48 Rozdział 2. Rekurencja

W celu dokładniejszego przeanalizowania algorytmu posłużymy się kilkoma zmiennymi pomocniczymi:

•    left indeks tablicy ograniczający obserwowany obszar tablicy od lewej strony;

•    riglit indeks tablicy ograniczający obserwowany obszar tablicy od prawej strony;

0

1

2

3

4

5

6

7

B

9

10

11

I

2

6

IX

20

23

29

32

34

39

40

41

Ietl=0,    f, md=(!e/i+riQh!)/2= 5. tabfmidt=23


Rys. 2 - 9.

Przeszukiwanie binarne nu przykładzie.

I8<23    18-23    I8>23

I

2

6

I8

20

23

29

32

34

39

40

41



teft=0, ńght=mid=4, micf=(łeft^ńght)/2=2. tablmidpS


I

2

6

18

20

23

29

32

34

39

40

41

iett=mid=2, righF4. rmd=(left+right)/2=3. tab(midl=18

I8<!8 ,    18-18    I8>I8

• niid indeks elementu środkowego obserwowanego aktualnie obszaru tablicy.

Na rysunku 2-9 przedstawione jest działanie algorytmu oraz wartości zmiennych left, right i miel podczas każdego ważniejszego etapu. Poszukiwanie zakończyło się pomyślnie już po trzech etapach". Warto zauważyć, że to samo zadanie, rozwiązywane za pomocą przeglądania od lewej do prawej elementów tablicy, zostałoby ukończone dopiero po 4 etapach. Być może otrzymany zysk nie oszałamia, proszę sobie jednak wyobrazić, co by było, gdyby tablica miała rozmiar kilkanaście razy większy niż len użyty w przykładzie?! Proszę napisać funkcję, która realizuje poszukiwanie binarne w sposób rckurencyjny.

2 Za „etap” będziemy tu uważali moment testowania, czy dana liczba jest tą, której poszukujemy.


Wyszukiwarka

Podobne podstrony:
ALG0 50_ _Rozdział2. Rekurencja Odpowiadający temu rozumowaniu program przedstawia się
ALG8 88 Rozdział 4. Algorytmy sortowania Jest chyba dość oczywiste, że wywołania rekurencyjne zatrz
ET8 48 Rozdział 4. Turystyka jako sektor gospodarki działalności poszczególnych podmiotów, dzielący
ALG8 18 Rozdziali. Zanim wystartujemy dopóki a>0 wykonuj; podstaw za c resztę z dzielenia a prze
ALG0 30 Rozdział 2. Rekurencja 2.2 potwornie skomplikowany: klocków jest cala masa i niespecjalnie
ALG2 32 Rozdział 2. Rekurencja Wyżej podaliśmy warunki pozytywnego zakończenie programu. W przypadk
ALG6 36 Rozdział 2. Rekurencja każemy. W rozdziale 9 zostanie omówiona ciekawa technika programowan
ALG2 42 Rozdział 2. Rekurencja 2. m.in. wartości zmiennych tego poziomu (tzw. kontekst). Co więcej,
Alg4 44 Rozdział2. Rekurencja ( if (lg>0) ( lineto(x+lg,y); lineto(x+lg,y+lg); lineto
ALG6 46_ _ Rozdział2. Rekurencja rekurencyjnych jest pamięcioźerność: wielokrotne wywołania rekuren
ALG2 52 Rozdział 2. RekurenZad. 2-4Oto jedno z możliwych rozwiązań: trójkąty ,cpp double y) void nu
ALG8 68 Rozdział 3. Analiza sprawności algorytmów3.6. Nowe zadanie: uprościć obliczenia! Nic sposób
ALG8 78___Rozdział 3 Analiza sprawności algorytmówZad. 3-4 Proszę rozwiązać następujące równanie
ALG 8 98 Rozdział 5. Struktury danych W następnych paragrafach zostaną przedstawione wszystkie metod
ALG8 108__Rozdział 5. Struktury danych5.1.3.Listy jednokierunkowe - teoria i rzeczywistość Oprócz p
ALG8 118 Rozdział 5. Struktury danych if(pŁzed==NULL) // wstawiamy na początek listy ( inf_ptr[nr].
ALG8 128 Rozdział 5. Struktury dam i W zależności od konkretnych potrzeb można element /> fizycz
ALG8 138 Rozdział 5. Struktury danych • „prawy” potomek /-tego węzła jest „schowany” pod indeksem 2

więcej podobnych podstron