• Nie Znaleziono Wyników

Lekcja 4: Algorytmy wyszukiwania. Odpowiedź S. Hoa Nguyen

N/A
N/A
Protected

Academic year: 2022

Share "Lekcja 4: Algorytmy wyszukiwania. Odpowiedź S. Hoa Nguyen"

Copied!
5
0
0

Pełen tekst

(1)

Lekcja 4: Algorytmy wyszukiwania. Odpowiedź

S. Hoa Nguyen

1. Rozpatrzmy algorytm poszukiwań binarnych na Rysunku ??

Rysunek 1: Algorytm wyszukiwania binarnego

Niech tablica wejściowa E = [2, 4, 5, 6, 7, 8, 10, 13, 15, 17, 19] i wyszukiwany element x = 6.

(a) Wyznaczyć kolejne wartości indeksów m = l+p2 w algorytmie.

m = 5, 2, 3.

(b) Wyznaczyć liczbę porównywań elementów tablicy E z elementem x.

3.

(c) Zaproponuj dane, dla których algorytm BinSearch nie będzie istotnie lepszy niż algorytm sekwencyjny.

(2)

Ten sam zbiór E, wyszukiwany element x = 2.

2. Dla algorytm BinSearch podanego na Rysunku ??, niech size(E) = N , gdzie N = π

n. Czy następujące stwierdzenia są prawdziwe?

(a) Złożoność pamięciowa S(N ) algorytmu BinSearch wynosi S(N ) = Θ(1).

Prawda.

(b) Niech T (N ) oznacza złożoność czasową algorytmu BinSearch, to wtedy T (N ) = O(√

n).

Prawda.

3. Narysuj drzewo turniejowe dla danych wejściowych zapisanych w poniższej tablicy:

A = [2, 7, 9, 14, 13, 0, 8, 4, 12, 19, 17, 16, 3, 1, 11, 20]

Jaki koszt algorytmu dla rozważanych danych wejściowych?

4. Zaproponuj algorytm wyszukiwania trzeciego elementu co do wielkości z wy- korzystaniem metody turniejowej. Jaka jest złożoność czasowa i pamięciowa algorytmu?

5. Napisz algorytm wyszukiwania minimum i maksimum wykorzystujący nastę- pującą metodę:

• Krok1: dla każdej pary kolejnych elementów ciągu ustawiam element mniejszy na pozycji nieparzystej, a element większy na pozycji parzystej.

• Krok 2: szukam elementu najmniejszego na pozycjach nieparzystych.

• Krok 3: szukam elementu największego na pozycjach parzystych.

(a) Uzasadnij poprawność i zbadaj koszt tego algorytmu.

(b) Zaproponuj implementację tego algorytmu, zakładając, że elementy ciągu są umieszczone w tablicy.

Uwaga. Nie należy zakładać, że liczba elementów jest parzysta.

6. Zmodyfikuj algorytm Min-Max tak, by zwracał pozycję elementu najmniej- szego i pozycję elementu największego, a nie ich wartości. Sformułuj nie- zmiennik pętli i uzasadnij, poprawność tego algorytmu ze względu na wa- runek końcowy ∀i≤n(e[min] ≤ e[i] ≤ e[max]) w dowolnej strukturze danych wyposażonej w liniowy porządek.

7. Przedstaw kolejne etapy obliczenia algorytmu wyszukiwania binarnego dla następującej tablicy danych i x = 20

T = [1, 3, 4, 5, 5, 6, 8, 10, 15, 18, 20, 20, 30, 35, 45, 50]

Przypomnienie: m = l+r2

m = 7, 11. Algorytm kończy się po dwóch iteracjach.

(3)

8. Przedstaw dwa pierwsze etapy algorytmu wyszukiwania interpolacyjnego dla danych w poprzednim zadaniu. Przypomnienie: m = l +A[r]−A[l](x−A[l])(r − l) m = 6, 9, 10. Algorytm kończy się po trzech iteracjach.

9. Zmodyfikuj algorytm turniej tak by działał poprawnie dla dowolnych cią- gów (bez założenia, że n jest potęgą dwójki). Przeanalizuj działanie tego algorytmu dla ciągu [2, 1, 4, 3, 6, 5, 8, 7, 9, 10]

10. Rozpatrzmy algorytm wyszukiwania k-ty element co do wielkości na Rysunku

?? Niech tablica wejściowa będzie: E = [17, 7, 2, 12, 8, 19, 5, 15, 6, 9, 3] i wy-

Rysunek 2: Algorytm Hoare’a szukiwany element k = 2.

Czy następujące zadania są prawdziwe?

(a) Argumentem 5-go wykonania algorytmu składowego Partition jest ta- blica postaci: [17, 15, 12, 9], w której szukamy indeksu elementu 2-go co do wielkości.

Prawda.

(b) W rozważanym przypadku wysokość drzewa wykonań rekurencyjnych algorytmu HoarePartition jest równa dokładnie 6.

(4)

Fałsz.

(c) W rozważanym przypadku liczba wykonań algorytmu P artition jest równa dokładnie 6.

Prawda.

11. Rozpatrzmy algorytm Partition wywołany w algorytmie Hoare’a na Rysunku

??

Rysunek 3: Algorytm Partition

Zakłada się, że tablica wejściowa jest E = [4, 8, 3, 0, 1, 19, 15, 14, 6, 9, 18]. Czy następujące stwierdzenia są prawidłowe?

(a) Po pierwszych 4 operacjach przestawień elementów tablicy E wraz ze stosowną aktualizacją wskaźników l i r, lewy wskaźnik l wykorzystywany w rozważanym algorytmie, wskazuje na element tablicy E o indeksie 8 (elementy tablicy są indeksowane od 0).

Prawda.

(5)

(b) Po pierwszych 4 operacjach przestawień elementów tablicy E, jej postać jest następująca: E = [4, 8, 3, 0, 1, 15, 14, 6, 9, 19, 18].

Prawda.

(c) Po pierwszych 4 operacjach przestawień elementów tablicy E wraz ze stosowną aktualizacją wskaźników l i r prawy wskaźnik r wykorzysty- wany w rozważanym algorytmie, wskazuje na element tablicy E o in- deksie 9.

Prawda.

12. Niech A i B będą tablicami liczb naturalnych uporządkowanych rosnąco.

Niech dana będzie liczba k ∈ N . Poszukaj indeksy i i j takie, że A[i] + B[j] = k.

13. Zaproponuj iteracyjną wersję algorytmu Hoare znajdywanie k-tego co do wielkości elementu ciągu.

14. Zaproponuj algorytm tłumaczenia liczby naturalnej zapisanej w systemie dziesiętnym na dowolny inny system. Podaj specyfikację i uzasadnij po- prawność podanego algorytmu.

15. Podaj przykład danych wejściowych rozmiaru n, dla których

• algorytm wyszukiwania binarnego wykonuje istotnie więcej porównań niż algorytm ”skoki co k”, dla optymalnego k.

• algorytm wyszukiwania sekwencyjnego wykonuje w przybliżeniu tyle samo porównań co algorytm ”skoki co k”, dla optymalnego k.

• algorytm wyszukiwania sekwencyjnego wykonuje w przybliżeniu tyle samo porównań co algorytm wyszukiwania binarnego.

• Zaproponuj algorytm, który dla ciągu różnych liczb naturalnych A[1], A[2], ..., A[n]

i liczby x, znajdzie wszystkie pary A[p] i A[q] takie, że A[p].A[q] = x.

Rozpatrywać dwa przypadki:

(a) gdy ciąg jest dowolny.

(b) gdy ciąg jest uporządkowany.

Cytaty

Powiązane dokumenty

dla wyrażenia pies | kot (równoważnie pies OR kot) zostaną wyszukane strony odpowiadające któremukolwiek ze słów: pies lub kot, a także zawierające oba te słowa.. Minus

gdzie i to numer atrybutu (i=1..n), n to liczba atrybutów, s to numer próbki (s=1..M), M to liczba próbek, x to wartości próbki, to wartość i-tego atrybutu środka j-tej grupy

Dekompozycja obiektowa dostarcza mniejszej zaj¦to±ci pami¦ci w podsystemach, oraz krótszego czasu przeci¦cia list inwersyjnych (gdy» listy takie zawieraj¡ z reguªy mniejsz¡

Tablica zakotwicze« jest identyczna z tym tylko zastrze»eniem, »e jej pierwsza kolumna zawiera adres ostatniego obiektu zawieraj¡cego w opisie deskryptor d i.. Wybranie

Je»eli grupa si¦ rozpadªa, to obiekty tej grupy b¦d¡ stanowi¢ obiekty swobodne i konieczne jest ponowne przeprowadzenie klasykacji obiektów. Aktualizacja zwi¡zana ze zmian¡

Następnym krokiem jest utworzenie grup poprawionych (j-tą Następnym krokiem jest utworzenie grup poprawionych (j-tą grupę poprawioną oznaczamy przez Sj’). Na grupę Sj’..

Przy wpisaniu “10 pds kgs,” Alpha nie zrozumiał, a Google zapytał się czy chodzi może o funty i podał znów strony do konwersji. WPIS TESTOWY: light

• omawiamy wady i zalety metody które sprawiają, że sięgamy po jakąś modyfikację: i tu przedstawiamy całą modyfikację tak jak metodę klasyczną, a wiec budowę