Algorytmy i struktury danych: zestaw na powtórkę

Wzory, najważniejsze kroki metod dla każdego tematu i 6 zadań do ćwiczenia, z pełnymi rozwiązaniami na końcu.

Nowe zadaniaWróć do przedmiotu

W oknie drukowania wybierz „Zapisz jako PDF”, aby zachować kopię na swoim urządzeniu.

1Wzory i metody

Teoria grafów

Lemat o uściskach dłoni
Σ deg(v) = 2|E|
Grafy pełne
|E(Kn)| = n(n − 1)/2, |E(Km,n)| = m·n
Graf regularny
|E| = n·k/2
Drzewo i las
|E| = n − 1, |E| = n − c
Liście drzewa
L = 2 + Σ (deg(v) − 2) over deg(v) ≥ 3
Euler
cykl: wszystkie stopnie parzyste; ścieżka: dokładnie 2 stopnie nieparzyste
Cykle Hamiltona w Kn
(n − 1)!/2
Aktualizacja w algorytmie Dijkstry
d(v) = min(d(v), d(u) + w(u, v))
Marsze o długości L
(Mᴸ)ij

Metoda

  1. Zapisz stopień każdego wierzchołka; suma stopni jest równa dwukrotności liczby krawędzi.
  2. W zadaniach o grafach eulerowskich sprawdź, czy graf jest spójny, i policz wierzchołki o nieparzystym stopniu.
  3. Dla drzew użyj n − 1 krawędzi i lematu o uściskach dłoni.
  4. W algorytmie Dijkstry prowadź tabelę tymczasowych odległości i w każdej rundzie zatwierdzaj niezatwierdzony wierzchołek o najmniejszej odległości.
  5. Dla minimalnego drzewa rozpinającego posortuj krawędzie według wagi i pomijaj każdą krawędź zamykającą cykl (Kruskal) albo rozbudowuj jedno drzewo od wierzchołka startowego (Prim).

2Zadania do ćwiczenia

1.Algorytmy i złożonośćŚredni

Dlaczego w notacji dużego O zwykle pomija się podstawę logarytmu, jak w O(log n)?

  1. APodstawa ma znaczenie tylko dla małych n
  2. BLogarytmy zawsze zaokrągla się do liczb całkowitych
  3. CLogarytmy o różnych podstawach różnią się tylko stałym czynnikiem
  4. DWszystkie logarytmy w informatyce mają podstawę 10, więc jest ona domyślna
2.Algorytmy i złożonośćTrudny

Dyskretny problem plecakowy (0/1) rozwiązany programowaniem dynamicznym zajmuje czas O(nW). Dlaczego nazywa się to złożonością pseudowielomianową?

  1. APonieważ działa tylko dla W = 0
  2. BPonieważ algorytm jest randomizowany, a jego czas działania zmienia się przy każdych danych
  3. CPonieważ n jest zawsze małe
  4. DW jest liczbą, więc czas jest wykładniczy względem liczby bitów użytych do zapisania W
3.Struktury danychŚredni

Jak wstawia się nowy element do kopca binarnego?

  1. AWstawia się go na właściwą posortowaną pozycję, przesuwając o jedno miejsce w prawo wszystkie większe elementy
  2. BBuduje się cały kopiec od nowa
  3. CUmieszcza się go na końcu tablicy i przesuwa w górę, dopóki narusza własność kopca
  4. DUmieszcza się go w korzeniu i przesuwa w dół
4.Struktury danychTrudny

W buforze cyklicznym front == rear może oznaczać bufor pusty albo pełny. Jaki jest popularny sposób ich rozróżnienia?

  1. AUstawienie rozmiaru bufora na potęgę dwójki
  2. BCzyszczenie bufora za każdym razem, gdy front równa się rear, więc stan jest pusty
  3. CPrzechowywanie front i rear w tej samej zmiennej
  4. DPrzechowywanie osobnego licznika elementów albo pozostawianie zawsze jednej wolnej pozycji
5.Teoria grafówŚredni

Graf spójny: liczba wierzchołków 7, liczba krawędzi 14. Ile krawędzi k trzeba usunąć, aby zostało drzewo rozpinające?

|V| = 7|E| = 14
k =
6.Teoria grafówTrudny
ABCDEF

Ile jest marszów o długości 2 z D do A? Marsz może powtarzać wierzchołki i krawędzie. Nazwij tę liczbę N.

M = macierz sąsiedztwaL = 2
N =

3Roztwory

1.Algorytmy i złożoność

Odpowiedź: C · Logarytmy o różnych podstawach różnią się tylko stałym czynnikiem

Dlaczego to jest odpowiedź

Zmiana podstawy mnoży logarytm przez stałą, a duże O pomija stałe czynniki.

Odpowiedź

C · Logarytmy o różnych podstawach różnią się tylko stałym czynnikiem
2.Algorytmy i złożoność

Odpowiedź: D · W jest liczbą, więc czas jest wykładniczy względem liczby bitów użytych do zapisania W

Dlaczego to jest odpowiedź

Czas działania jest wielomianowy względem wartości W, ale wykładniczy względem jej długości (log W bitów); dyskretny problem plecakowy jest NP-zupełny.

Odpowiedź

D · W jest liczbą, więc czas jest wykładniczy względem liczby bitów użytych do zapisania W
3.Struktury danych

Odpowiedź: C · Umieszcza się go na końcu tablicy i przesuwa w górę, dopóki narusza własność kopca

Dlaczego to jest odpowiedź

Dodanie na końcu zachowuje zupełność drzewa; zamiany z rodzicem przywracają porządek w O(log n) krokach.

Odpowiedź

C · Umieszcza się go na końcu tablicy i przesuwa w górę, dopóki narusza własność kopca
4.Struktury danych

Odpowiedź: D · Przechowywanie osobnego licznika elementów albo pozostawianie zawsze jednej wolnej pozycji

Dlaczego to jest odpowiedź

Przy liczniku pusty oznacza count = 0, a pełny count = pojemność; przy jednej wolnej pozycji pełny definiuje się jako (rear + 1) mod n == front.

Odpowiedź

D · Przechowywanie osobnego licznika elementów albo pozostawianie zawsze jednej wolnej pozycji
5.Teoria grafów

Odpowiedź: k = 8

Euler, Hamilton i drzewa: graf spójny ma cykl Eulera (każda krawędź raz, powrót do startu), gdy każdy wierzchołek ma stopień parzysty, oraz ścieżkę Eulera, która nie jest cyklem, gdy dokładnie dwa wierzchołki mają stopień nieparzysty; ścieżka biegnie wtedy od jednego wierzchołka nieparzystego do drugiego. Cykl Hamiltona odwiedza każdy wierzchołek raz; Kn ma ich (n − 1)!/2. Drzewo o n wierzchołkach ma n − 1 krawędzi, a graf spójny o m krawędziach zachowuje drzewo rozpinające po usunięciu m − n + 1 krawędzi.

Krawędzie drzewa rozpinającego

7 − 1 = 6

Krawędzie do usunięcia

k = 14 − 6 = 8

Odpowiedź

k = 8
6.Teoria grafów

Odpowiedź: N = 1

Stopnie: stopień wierzchołka to liczba krawędzi, które się w nim stykają. Każda krawędź ma dwa końce, więc stopnie sumują się do dwukrotności liczby krawędzi: Σ deg(v) = 2|E| (lemat o uściskach dłoni). Liczba wierzchołków o nieparzystym stopniu jest zatem parzysta. Kn ma n(n − 1)/2 krawędzi, graf k-regularny o n wierzchołkach ma nk/2, a drzewo o n wierzchołkach ma n − 1 krawędzi.

Macierz sąsiedztwa

A: 0 1 1 0 0 0
B: 1 0 0 1 1 0
C: 1 0 0 0 1 0
D: 0 1 0 0 1 1
E: 0 1 1 1 0 1
F: 0 0 0 1 1 0

Wspólni sąsiedzi

(M²)DA = 0·0 + 1·1 + 0·1 + 0·0 + 1·0 + 1·0 = 1

Odpowiedź

N = 1

ExamProblems · examproblems.com/courses/data-structures-and-algorithms