1. Klasówka 2012/13

1. Klasówka 2012/13#

Zadanie 1#

Słowa kluczowe: optymalne porównania

Udowodnij, że do scalania dwóch ciągów uporządkowanych długości \(2\) i \(5\) potrzeba i wystarcza \(5\) porównań.

Zadanie 2#

Słowa kluczowe: teksty

Powiemy, że dwa napisy są podobne wtedy i tylko wtedy, gdy zawierają jednakowe liczby wystąpień tych samych znaków. Danych jest \(n\) napisów nad alfabetem \(m\)-znakowym \(\{1, 2, \cdots, m\}\). Zaproponuj algorytm, który stwierdza, ile jest wśród nich różnych klas napisów podobnych. Twój algorytm powinien działać w czasie \(O(R + m)\), gdzie \(R\) jest sumą długości wszystkich napisów.

Zadanie 3#

Słowa kluczowe: sortowanie, w miejscu, stabilnie

Dana jest \(2n\)-elementowa tablica zawierająca \(n\) zer i \(n\) jedynek. Chcemy ją uporządkować tak, żeby zera i jedynki były ułożone na przemian, począwszy od zera, tj. \(010101...\). Zaproponuj efektywny algorytm, który wykona to w miejscu i stabilnie (tj. kolejność zer i kolejność jedynek z wejścia muszą być zachowane).