Darmowe konto pozwoli wrócić do niego później.
Polecenie
Dana jest dodatnia liczba całkowita n oraz słowo s[1..n]. Naszym celem jest obliczenie wartości elementów tablicy T[1..n] zawierającej numery sufiksów słowa s[1..n] uporządkowanych w porządku alfabetycznym.
Przykład:
dla słowa mascarpone wynikowa tablica T to [5, 2, 4, 10, 1, 9, 8, 7, 6, 3],
dla słowa kalafiorowa wynikowa tablica T to [11, 4, 2, 5, 6, 1, 3, 7, 9, 8, 10].
Z wykorzystaniem funkcji czy_mniejszy(n, s, k1, k2) zapisz w wybranej przez siebie notacji (w postaci pseudokodu lub w wybranym języku programowania) algorytm, który obliczy wartości elementów tablicy T zawierającej numery sufiksów zgodnie z porządkiem alfabetycznym sufiksów słowa s.
Darmowe konto pozwoli wrócić do niego później.
Uwaga: w zapisie możesz wykorzystać tylko operacje arytmetyczne (dodawanie, odejmowanie, mnożenie, dzielenie, dzielenie całkowite, reszta z dzielenia), odwoływanie się do pojedynczych elementów tablicy, porównywanie liczb lub znaków, instrukcje sterujące i przypisania lub samodzielnie napisane funkcje zawierające wyżej wymienione operacje.
Specyfikacja
Dane: n – liczba całkowita dodatnia, długość słowa
s[1..n] – słowo zapisane jako tablica znaków (numerowana od 1)
Wynik: T[1..n] – tablica T taka, że T[i]-ty sufiks słowa s jest mniejszy w porządku alfabetycznym od T[i +1]-go sufiksu słowa s dla każdego 1 ≤ i < n.
Algorytm:
wypełnienie tablicy jako początkowymi wartościami liczbami od 1 do n, a następnie wykorzystanie dowolnego algorytmu sortowania (np. sortowanie bąbelkowe), w którym porównanie par liczb T[i], T[j] zastąpiono funkcją czy_mniejszy(n, s, i, j).
Przykład:
Dla i=1,2,...,n
T[i] ← i
Dla i=1,2,...,n-1
Dla j=1,2,...,n-i
Jeżeli czy_mniejszy(n,s,T[j+1],T[j]) = PRAWDA
x ← T[j+1]
T[j+1] ← T[j]
T[j] ← x
poprawna odpowiedź, w tym
prawidłową organizację pętli sortujących (np. sortowanie bąbelkowe, przez wybór albo wstawianie),
wypełnienie tablicy wartościami początkowymi (liczbami od 1 do n) oraz prawidłowe porównywanie elementów podczas sortowania (z wykorzystaniem funkcji czy_mniejszy),
za prawidłowe przestawianie elementów tablicy podczas sortowania.
odpowiedź niepoprawna albo brak odpowiedzi.
Ocena według schematu punktowania CKE, zwykle w 15–30 s
Dowiedz się, ile punktów naprawdę zdobywasz. Zrób zdjęcie kartki albo wklej odpowiedź: Maturownik+ porówna ją ze schematem punktowania, policzy punkty i wytłumaczy, gdzie i dlaczego je tracisz.