1. Klasówka 2019/20 (15.11.2019)

1. Klasówka 2019/20 (15.11.2019)#

Zadanie 1 [5 punktów]#

Słowa kluczowe: sortowanie, optymalne porównania
  1. [2 punkty] Ile jest permutacji liczb od 1 do n o co najwyżej 2 inwersjach?

  2. [3 punkty] Zaproponuj optymalny algorytm sortujący przez porównania ciągi różnowartościowe o co najwyżej 2 inwersjach.

Zadanie 2 [5 punktów]#

Słowa kluczowe: sortowanie

Rozważamy klasyczne sortowanie przez wstawianie tablicy \(a[1,\ldots,n]\) w porządku niemalejącym, w której zapisano pewną permutację liczb od 1 do n. Zaprojektuj wydajny algorytm, który dla danej zawartości tablicy a wyznaczy najmniejsze takie i, że podczas sortowania przez wstawianie a[i] jest porównywane najczęściej.

Zadanie 3 [10 punktów]#

Słowa kluczowe: sortowanie, w miejscu

Dana jest tablica \(a[1,\ldots,4n]\), w której znajduje się po n liczb ze zbioru {0,1,2,3}.

  1. [5 punktów] Zaprojektuj liniowy algorytm sortujący tablicę a w miejscu.

  2. [5 punktów] Podaj algorytm działający w czasie \(O(n \log n)\), który sortuje tablicę a w miejscu i stabilnie (tzn. kolejność elementów o tej samej wartości przed i po sortowaniu jest taka sama).