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 zatrzET8 48 Rozdział 4. Turystyka jako sektor gospodarki działalności poszczególnych podmiotów, dzielącyALG8 18 Rozdziali. Zanim wystartujemy dopóki a>0 wykonuj; podstaw za c resztę z dzielenia a przeALG0 30 Rozdział 2. Rekurencja 2.2 potwornie skomplikowany: klocków jest cala masa i niespecjalnieALG2 32 Rozdział 2. Rekurencja Wyżej podaliśmy warunki pozytywnego zakończenie programu. W przypadkALG6 36 Rozdział 2. Rekurencja każemy. W rozdziale 9 zostanie omówiona ciekawa technika programowanALG2 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); linetoALG6 46_ _ Rozdział2. Rekurencja rekurencyjnych jest pamięcioźerność: wielokrotne wywołania rekurenALG2 52 Rozdział 2. RekurenZad. 2-4Oto jedno z możliwych rozwiązań: trójkąty ,cpp double y) void nuALG8 68 Rozdział 3. Analiza sprawności algorytmów3.6. Nowe zadanie: uprościć obliczenia! Nic sposóbALG8 78___Rozdział 3 Analiza sprawności algorytmówZad. 3-4 Proszę rozwiązać następujące równanieALG 8 98 Rozdział 5. Struktury danych W następnych paragrafach zostaną przedstawione wszystkie metodALG8 108__Rozdział 5. Struktury danych5.1.3.Listy jednokierunkowe - teoria i rzeczywistość Oprócz pALG8 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 /> fizyczALG8 138 Rozdział 5. Struktury danych • „prawy” potomek /-tego węzła jest „schowany” pod indeksem 2więcej podobnych podstron