Naucz się rozwiązywać zadania z pseudokodu bez komputera! Opanuj tworzenie tabelek śledzenia (dry run) oraz błyskawiczne szacowanie złożoności O(n).
Na maturze często spotkasz się z zadaniem, w którym CKE rzuca Ci krótki pseudokod i pyta: "Jaki wynik wypisze ten algorytm dla ?". Nie masz do dyspozycji komputera, więc musisz polegać na kartce i własnym umyśle.
Najskuteczniejszą, całkowicie bezbłędną metodą analizy jest tabelka śledzenia zmiennych. Polega ona na wypisaniu wszystkich zmiennych z algorytmu w postaci nagłówków kolumn. Następnie przechodzisz linijka po linijce przez kod i aktualizujesz ich wartości, wykreślając stare.
Najlepiej nauczyć się tego na konkretnym przykładzie z arkusza maturalnego.
n ← 4 wynik ← 1 DOPÓKI n > 0 WYKONUJ: wynik ← wynik * n n ← n - 1 WYPISZ wynik
Złożoność obliczeniowa określa, jak bardzo wydłuża się czas działania algorytmu w zależności od rozmiaru danych wejściowych (oznaczanych w informatyce jako ).
Na maturze rzadko musisz liczyć każdą matematyczną operację – wystarczy oszacować rząd wielkości. Twoim głównym celem podczas analizy pseudokodu powinno być poszukiwanie pętli.
Najczęstsza na maturze. Pojawia się, gdy mamy tylko jedną pętlę przechodzącą przez elementy. Jeśli ilość danych wzrośnie 10 razy, czas wykonania również wzrośnie 10 razy.
DLA i = 1 DO n WYKONUJ...
Typowa dla np. sortowania bąbelkowego. Rozpoznasz ją po dwóch zagnieżdżonych w sobie pętlach. Jeśli dane wzrosną 10 razy, czas wzrośnie aż 100 razy!
DLA i = 1 DO n:
DLA j = 1 DO n...
Ekstremalnie szybka złożoność! Występuje, gdy z każdym krokiem pętli zbiór danych zmniejsza się o połowę (np. wyszukiwanie binarne).
DOPÓKI lewy < prawy:
srodek = (lewy + prawy) / 2
Święty Graal programowania. Kod wykonuje się zawsze w tym samym czasie, niezależnie od tego, czy przetwarza 5 elementów, czy 5 miliardów.
if (tablica[0] % 2 == 0):
WYPISZ "Parzysta"
To tylko jeden z pewniaków. Na kursie przechodzimy przez nie wszystkie, krok po kroku, aż poczujesz ten spokój.
Pomóżcie mi zdać maturę!