Śledzenie pseudokodu i złożoność obliczeniowa
Naucz się śledzić pseudokod krok po kroku. Tabelki śledzenia (dry run) i błyskawiczne szacowanie złożoności O(n) na maturze z informatyki.
W arkuszu dostajesz kilkanaście linijek pseudokodu i pytanie, co wypisze dla podanego n. Zmienia się treść algorytmu, nie sposób jego rozgryzienia: tabelka śledzenia zmiennych działa tak samo na silni, jak na sortowaniu. Do tego dochodzi drugie stałe pytanie, o złożoność, którą rozpoznasz po liczbie zagnieżdżonych pętli. Na zajęciach widzimy, że gubi się nie sam algorytm, tylko kolejność wykonania — co dzieje się w zagnieżdżonej pętli i które instrukcje zdążyły się wykonać do danego momentu.
- Śledzenie algorytmu (Zostań ludzkim kompilatorem)
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 ?". Komputer stoi na stanowisku przez cały egzamin, ale przepisywanie pseudokodu do środowiska bywa wolniejsze niż rzetelna tabelka — a przy pytaniu o złożoność i tak nic nie da.
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.
- Jak to wygląda w praktyce?
Najlepiej nauczyć się tego na konkretnym przykładzie z arkusza maturalnego.
Zadanie
n ← 4 wynik ← 1 DOPÓKI n > 0 WYKONUJ: wynik ← wynik * n n ← n - 1 WYPISZ wynik
💡 Pokaż rozwiązanie krok po kroku▼
- Złożoność obliczeniowa (Notacja Big O)
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.
- Jak błyskawicznie rozpoznać złożoność?
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"
Lista pomyłek, które kosztują punkty mimo poprawnego rozumowania — i sposoby, żeby ich uniknąć.
Korepetycje z informatyki
Zdajesz maturę rozszerzoną z informatyki?
Prowadzimy indywidualne przygotowanie do matury z informatyki — algorytmy, Python i C++, bazy danych i arkusz kalkulacyjny. Zajęcia online, na arkuszach CKE. Zobacz program i cennik.
Zobacz korepetycje z informatykiUczysz się w technikum informatycznym? Prowadzimy też przygotowanie do kwalifikacji INF.02, INF.03 i INF.04. Zobacz egzaminy zawodowe →
Nadal czujesz się niepewnie?
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ę!