KWALIFIKACJA INF2 + INF3 - CZERWIEC 2014

PYTANIE NR 15.
Algorytm
Ilustracja przedstawia fragment egzaminu zawodowego dla technika programisty, dotyczący algorytmu wyszukiwania maksymalnego
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Odpowiedź "wyświetla maksymalny element tablicy" opisuje typowy algorytm przeglądu liniowego: po kolei porównuje elementy i zapamiętuje największy, a na końcu go wypisuje.
"Minimalny" dotyczy odwrotnego warunku, "sortowanie" wymagałoby przestawiania wielu elementów, a "wpisuje do tablicy" oznaczałoby modyfikację danych wejściowych.

Pełne wyjaśnienie:

Algorytm, który wyświetla maksymalny element tablicy, działa zwykle w schemacie: wybiera wartość początkową (np. pierwszy element) jako "aktualne maksimum", następnie przechodzi przez kolejne elementy i wykonuje porównanie. Jeśli bieżący element jest większy od zapamiętanego maksimum, zastępuje maksimum tą wartością. Po zakończeniu przeglądu wypisuje (wyświetla) zapamiętane maksimum.

Dlaczego to pasuje do opisu "wyświetla maksymalny element tablicy"?

  • Występuje porównywanie kolejnych wartości oraz aktualizacja jednej zmiennej przechowującej wynik.
  • Nie ma potrzeby przestawiania elementów, więc to typowy przegląd liniowy (czas O(n)).

Dlaczego pozostałe odpowiedzi nie pasują?

  • "Wyświetla minimalny element tablicy" byłoby poprawne tylko wtedy, gdy warunek porównania i aktualizacji dotyczyłby wartości mniejszej (szukanie minimum). To częsta pomyłka, bo oba algorytmy są bardzo podobne, różni je kierunek nierówności.
  • "Sortuje elementy tablicy malejąco" oznaczałoby uporządkowanie wszystkich elementów (np. przez zamiany miejsc, wielokrotne przebiegi lub inną metodę sortowania). Samo znalezienie maksimum nie tworzy posortowanej tablicy.
  • "Wpisuje do tablicy wyprowadzoną wartość" sugeruje modyfikację tablicy (operację zapisu do jej komórek). Algorytm wyszukiwania maksimum zwykle nie zmienia danych wejściowych, tylko oblicza wynik i go wyświetla.

Wskazówka egzaminacyjna: gdy widzisz algorytm z jedną zmienną wyniku i pojedynczą pętlą po tablicy, najczęściej testuje on agregację (min/max/suma/licznik), a nie sortowanie.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Oznacza to, że algorytm przegląda wartości w tablicy i wybiera największą z nich. Najczęściej robi to przez zapamiętanie "największej dotąd" wartości, porównywanie z kolejnymi elementami oraz aktualizację tej zmiennej, a na końcu wyświetlenie wyniku.
Sprawdź kierunek porównania. Dla maksimum typowy warunek ma sens "jeśli bieżący element jest większy od zapamiętanego, to podmień wynik". Dla minimum nierówność jest odwrotna ("mniejszy"). Reszta struktury (pętla, zmienna wyniku) bywa identyczna.
Sortowanie musi ustawić wszystkie elementy w kolejności, zwykle przez zamiany lub inne operacje reorganizacji danych. Szukanie maksimum tylko wyznacza jedną wartość (największą) i nie zmienia układu pozostałych elementów, więc nie daje tablicy posortowanej.
Najczęściej: (1) ustaw wynik na pierwszy element tablicy, (2) przejdź pętlą po pozostałych elementach, (3) porównaj element z wynikiem, (4) jeśli jest większy, zaktualizuj wynik, (5) po pętli wyświetl wynik. To klasyczny przegląd liniowy.
Tak. Wtedy oprócz wartości maksimum trzyma się też zmienną z indeksem (pozycją) najlepszego elementu. Gdy następuje aktualizacja maksimum, aktualizuje się również indeks. W testach to częsta odmiana zadania na tablice.
Przydaje się np. w backendzie do wyboru najwyższej wartości z listy (największa cena, największy rozmiar pliku, najwyższy wynik), w analizie logów i statystyk, a także przy walidacji danych (sprawdzenie, czy żaden element nie przekracza limitu).
Najczęstsze to: mylenie znaku nierówności (max vs min), inicjalizacja wyniku złą wartością (np. 0 przy liczbach ujemnych), pominięcie pierwszego elementu lub niepoprawny zakres pętli. Warto zawsze prześledzić działanie na 2–3 przykładach.
Dla nieposortowanej tablicy, bez dodatkowych założeń, trzeba sprawdzić wszystkie elementy, więc typowy czas to O(n). Szybciej można tylko, gdy dane mają strukturę (np. są posortowane) lub trzymasz dodatkowe informacje (np. kopiec/indeks) aktualizowane na bieżąco.
Bo nie zakłada nic o zakresie danych. Jeśli ustawisz maksimum na 0, a wszystkie liczby są ujemne, wynik będzie błędny. Inicjalizacja pierwszym elementem gwarantuje, że wynik należy do danych wejściowych i kolejne porównania poprawnie go zaktualizują.
Ćwicz rozpoznawanie schematów: min/max, suma, licznik, wyszukiwanie elementu, zliczanie spełniających warunek. Zawsze rób "ręczne wykonanie" na małej tablicy, zapisując zmienne po każdej iteracji. To ułatwia wykrycie, co algorytm na końcu wyświetla.
info

Statystycznie 70% uczniów zna prawidłową odpowiedź. średnio łatwe

Źródła:

  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, "Introduction to Algorithms", 3rd edition, rozdziały wprowadzające o przeszukiwaniu liniowym i analizie O(n).
  • Donald E. Knuth, "The Art of Computer Programming", Volume 1: Fundamental Algorithms, sekcje dotyczące podstawowych algorytmów iteracyjnych na tablicach.
  • Python 3 Documentation, Built-in Functions: max() – https://docs.python.org/3/library/functions.html#max (dostęp: 2026-03-02)

Materiały:

  • Rozdziały o tablicach i pętlach w podręczniku do podstaw programowania
  • Ćwiczenia: znajdowanie minimum/maksimum oraz indeksu elementu skrajnego
  • Zadania z analizą pseudokodu i śledzeniem działania programu krok po kroku

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego