• Nie Znaleziono Wyników

Algorytmy i Struktury Danych, 6. ćwiczenia

N/A
N/A
Protected

Academic year: 2021

Share "Algorytmy i Struktury Danych, 6. ćwiczenia"

Copied!
2
0
0

Pełen tekst

(1)

Algorytmy i Struktury Danych, 6. ćwiczenia

2016-11-18

Spis treści

1 Tablice dynamiczne 1

2 d-kopce 2

3 Dijkstra z ograniczonymi wagami 2

1 Tablice dynamiczne

(Cormen, 17.4, strona 423–432) Potrzebujemy tablicy, która umożliwia:

• swobodny (w czasie O(1) dostęp) do wszystkich zapisanych elementów,

• rozszerzenie tablicy o następny element (na jej końcu),

• zmniejszenie tablicy o ostatni element,

Dodawanie nowych elementów możemy wykonać w następujący sposób:

• jeśli są jeszcze wolne miejsca w tablicy to dodajemy nowy element,

• jeśli tablica jest pełna, to alokujemy dwa razy większą tablicę i przepi- sujemy wszystkie stare elementy do nowej tablicy, oraz dodajemy nowy element.

Usuwanie:

• jeśli współczynnik zapełnianie jest większy niż 1/4, to usuwamy element,

• jeśli współczynnik zapełnienia spadnie poniżej 1/4, to alokujemy dwa razy mniejszą tablicę, i przepisujemy tam wszystkie stare elementy (oczywiście oprócz usuwanego).

Potencjał:

• jeśli współcznnik zapełnienia ≥ 1/2, to Φ = 2 ∗ num − size,

• jeśli współcznnik zapełnienia < 1/2, to Φ = size/2 − num,

1

(2)

2 d-kopce

d–kopiec do drzewo zupełne o stopniu d z porządkiem kopcowym (min w korze- niu). Należy pokazać, że poszczególne operacje wykonuje się w czasie:

• Min — O(1)

• DeleteMin — O(d · logd(n))

• DecreaseKey — O(logd(n))

Koszt implementacji algorytmu Dijkstry, przy użyciu d–kopców: O(nd · logd(n) + m · logd(n)).

Zanalizować jak należy dobrać d w zależności od m i n (jeśli za d weźmiemy max(2, dm/ne) to dostajemy O(log m/nm log n)).

3 Dijkstra z ograniczonymi wagami

Aby otrzymać czas O(N W + M ) potrzebujemy kolejki priorytetowej o następu- jących czasach wykonania poszczególnych operacji:

• ExtracMin — O(W )

• DecreaseKey — O(1)

Wystarczy zauważyć, że jeśli do jakiegoś wierzchołka istnieje droga, to jej długość jest ≤ N W . Czyli potrzebujemy tablicy N W elementowej (i–ty element tablicy zawiera listę nieodwiedzonych wierzchołków w odległości i od wierz- chołka początkowego).

2

Cytaty

Powiązane dokumenty

Udowodnij, że jeśli algorytm sortujący tablicę A[1..n] porównuje i zamienia wy- łącznie elementy odległe co najwyżej o 2015 (tzn. jeśli porównuje A[i] z A[j], to.. |i-j|

[r]

Jeśli graf nie jest regularny, to należy dodać nowe krawędzie i ewentualnie wierz- chołki tak by przerobić go na regularny.. Algorithm

Algorytmy i Struktury

Wstarczy tak długo jak drzewo zawiera węzeł z lewym synem, wykonujemy na nim (i lewym synie) prawą

• v należy do poddrzewa p.right, jednak zauważmy, że liczba kroków tego typu nie może przekroczyć O(log n). 3

[r]

Ponieważ M jest najliczniejszym skojarzeniem, nie wśród nich