Efektywność algorytmów
Informatyka, klasa 8 · Algorytmy
Najważniejsze w skrócie
Dwa algorytmy mogą dać ten sam wynik, ale w bardzo różnym czasie. Efektywność mierzymy liczbą operacji potrzebnych dla danych o rozmiarze n.
Wyszukiwanie liniowe sprawdza po kolei wszystkie elementy — dla miliona danych to milion kroków. Wyszukiwanie binarne w posortowanym zbiorze potrzebuje około dwudziestu.
Podobnie z sortowaniem: metody proste wykonują około n do kwadratu porównań, a szybkie algorytmy znacznie mniej. Przy dużych danych ta różnica decyduje o użyteczności programu.

Ważne daty
- n — rozmiar danych wejściowych
- liniowe — około n kroków
- binarne — około log n kroków
- 1 000 000 — milion danych: 20 kroków binarnie
- n do kwadratu — koszt prostego sortowania
Ważne postacie
- Wyszukiwanie liniowe — sprawdza kolejno wszystko
- Wyszukiwanie binarne — dzieli zbiór na pół
- Sortowanie bąbelkowe — proste, ale wolne
- Sortowanie szybkie — dużo wydajniejsze dla dużych zbiorów
Pojęcia
- Co oznacza n w analizie algorytmu?
- Rozmiar danych wejściowych.
- Ile kroków ma wyszukiwanie liniowe?
- W najgorszym razie tyle, ile elementów.
- Jaki warunek ma wyszukiwanie binarne?
- Dane muszą być posortowane.
- Ile kroków binarnie dla miliona elementów?
- Około dwudziestu.
- Dlaczego sortowanie bąbelkowe jest wolne?
- Wykonuje około n do kwadratu porównań.
- Kiedy różnica w efektywności ma znaczenie?
- Przy dużych zbiorach danych.
- Co robi wyszukiwanie binarne w każdym kroku?
- Odrzuca połowę pozostałych elementów.
- Czy szybszy komputer zastąpi lepszy algorytm?
- Nie przy dużych danych — wzrost kosztu jest zbyt szybki.
- Ile porównań wymaga w najgorszym razie wyszukiwanie liniowe w liście tysiąca elementów?
- Tysiąc — sprawdzamy każdy element po kolei.
- Jak zmienia się czas algorytmu kwadratowego po podwojeniu danych?
- Wydłuża się mniej więcej czterokrotnie.
- Kiedy sortowanie bąbelkowe w zupełności wystarcza?
- Przy małych zbiorach, na przykład kilkunastu elementach.
- Co oznacza algorytm o stałej liczbie kroków?
- Że działa tak samo szybko niezależnie od rozmiaru danych.
Sprawdź się
1. W każdym kroku wyszukiwanie binarne odrzuca:
- Jeden element
- Połowę elementów
- Wszystkie
- Nic
Pokaż odpowiedź
B. Połowę elementów — Dlatego liczba kroków rośnie bardzo wolno.
2. Efektywność algorytmu mierzymy:
- Długością kodu
- Liczbą operacji dla n danych
- Liczbą zmiennych
- Kolorem edytora
Pokaż odpowiedź
B. Liczbą operacji dla n danych — Liczy się tempo wzrostu, nie liczba linii kodu.
3. Podwojenie liczby danych w algorytmie liniowym…
- Nie zmienia czasu
- Mniej więcej podwaja czas
- Czterokrotnie wydłuża czas
- Skraca czas
Pokaż odpowiedź
B. Mniej więcej podwaja czas — To najbardziej przewidywalny rodzaj wzrostu.
4. Algorytm o stałej liczbie kroków…
- Zwalnia przy większych danych
- Działa tak samo szybko niezależnie od rozmiaru danych
- Wymaga sortowania
- Nie istnieje
Pokaż odpowiedź
B. Działa tak samo szybko niezależnie od rozmiaru danych — Przykład to odczytanie elementu listy po numerze pozycji.
5. Wyszukiwanie binarne ma złożoność:
- liniową
- logarytmiczną
- kwadratową
- stałą
Pokaż odpowiedź
B. logarytmiczną — Liczba kroków rośnie bardzo wolno.
Więcej pytań — razem 50 fiszek, pytań i zdań prawda/fałsz — czeka w ćwiczeniach.
▶ Ćwicz ten temat fiszki, quiz i prawda/fałsz — z wynikiem i powtórkami