Klas´owka 1 z Algorytm´ow i Struktur Danych
1. Zaprojektuj algorytm, kt´ory sortuje w czasie O(n log(k = 1)) ka˙zdy ciag, liczbowy d lugo´sci n zawierajacy k r´, o´nych warto´sci, 1 ≤ k ≤ n.
2. (3 pkt) Ile permutacji wej´sciowych zbioru {1, 2, 3, 4, 5} daje po pierwszej fazie HeapSortu ciag 5, 3, 4, 1, 2? Odpowied´, z uzasadni´c.
3. (5+4 pkt) Udowodnij, ˙ze scalenie w jeden ciag uporz, adkowany k uporz, adkowanych, rosnaco ci, ag´, ow d lugo´sci n wymaga co najmniej Ω(nk log k) por´owna´n. Za- projektuj efektywny algorytm scalania takich ciag´, ow.
4. (8 pkt) Dane sa dwa roz l, aczne zbiory punkt´, ow na p laszczy´znie G = {(xG1, y1G), (xG2, yG2), . . . , (xGn, yGn)}
i
D = {(xD1, y1D), (xD2, y2D), . . . , (xDn, yDn)}
takie, ˙ze dla ka˙zdej pary indeks´ow i, j, 1 ≤ i, j ≤ n, yDi < yjG. Zaprojektuj efektywny algorytm, kt´ory znajdzie odleg lo´s´c miedzy zbiorami G i D w, metryce miejskiej. Zanalizuj z lo˙zono´s´c swojego algorytmu.
Dla punkt´ow p = (a, b) i q = (c, d) ich odleg lo´s´c w metryce miejskiej definiuje sie jako d(p, q) = |a − c| + |b − d|. Odleg lo´, s´c miedzy zbiorami A, i B to d(A, B) = min({d(p, q) : p ∈ A, q ∈ B}).
Uwaga: W miare mo˙zliwo´, sci algorytmy nale˙zy opisywa´c s lowami, ale na tyle precyzyjnie, ˙zeby mo˙zna by lo zanalizowa´c ich z lo˙zono´s´c.
Zadania oddajemy na pojedynczych kartkach.