ASD Ćwiczenia 1: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Linia 56: | Linia 56: | ||
Skorzystamy z prostego faktu: | Skorzystamy z prostego faktu: | ||
Jeśli <math>D(u)=[1.. n]</math> lub <math>D(w)=[1.. n]</math>, to <math>u,w</math> nie są równoważne. | Jeśli <math>D(u)=[1.. n]</math> lub <math>D(w)=[1.. n]</math>, to <math>u,w</math> nie są równoważne. | ||
Poprawność algorytmu wynika teraz z tego, że po każdej głównej iteracji zachodzi niezmiennik: | |||
<center> | <center> | ||
<math>D(w)\supseteq [1.. i]</math>\ oraz \ <math>D(u)\supseteq [1.. j]</math>.</center> | <math>D(w)\supseteq [1.. i]</math>\ oraz \ <math>D(u)\supseteq [1.. j]</math>.</center> | ||
</div> | |||
</div> | </div> | ||
Wersja z 10:05, 21 cze 2007
Zadanie 1
Udowodnij, że algorytm Najdłuższy-Malejący jest poprawny.
Rozwiązanie
Zadanie 2
Udowodnij, że algorytm Proste-Pakowanie jest poprawny.
Rozwiązanie
Zadanie 3
Udowodnij poprawność algorytmu na cykliczną równoważność słów.
Rozwiązanie
Zadanie 4
Operacja dominującą w algorytmie na cykliczną równoważność jest porównanie dwóch elementów tablic u,v (czy są równe, jeśli nie to który jest mniejszy). Liczba porównań jest liniowa. Dla jakich ciągów zadanej dlugości długości algorytm na cykliczną równoważność wykonuje maksymalną liczbę porównan symboli?
Rozwiązanie