Algorytmy i złożoność
Złożoność opisuje, jak rośnie nakład pracy algorytmu wraz z rozmiarem danych n. Współczynniki i składniki niższego rzędu nie zmieniają klasy wzrostu dla dużych n.
Widok
Liczba operacji
- model liniowej liczby operacji
- zakres rozszerzony, wzór kluczowy
- gdzie:
- liczba operacji dla danych o rozmiarze n
- stałe współczynniki modelu liczby operacji
- rozmiar danych wejściowych
- model kwadratowej liczby operacji
- zakres rozszerzony
- gdzie:
- liczba operacji dla danych o rozmiarze n
- stałe współczynniki modelu liczby operacji
- rozmiar danych wejściowych
Obliczenia równoległe
- prawo Amdahla
- poza podstawą programową
- gdzie:
- przyspieszenie: czas sekwencyjny podzielony przez czas równoległy
- część obliczeń, którą można wykonać równolegle (od 0 do 1)
- przyspieszenie części równoległej
Algorytmy liczbowe
- schemat Hornera dla wielomianu
- zakres rozszerzony
- gdzie:
- początkowy akumulator Hornera
- współczynnik najwyższej potęgi wielomianu
- akumulator Hornera po kroku k
- współczynnik k-tej potęgi wielomianu
- argument wielomianu
- akumulator Hornera przed krokiem k
- wielomian
- końcowa wartość wielomianu
- krok algorytmu Euklidesa
- zakres podstawowy
- gdzie:
- stałe współczynniki modelu liczby operacji
- najmniejsza wspólna wielokrotność
- zakres podstawowy
- gdzie:
- stałe współczynniki modelu liczby operacji
- rekurencja ciągu Fibonacciego
- zakres podstawowy
- gdzie:
- wyraz zerowy ciągu Fibonacciego
- pierwszy wyraz ciągu Fibonacciego
- n-ty wyraz ciągu Fibonacciego
- poprzedni wyraz ciągu Fibonacciego
- drugi poprzedni wyraz ciągu Fibonacciego
Prawa i uwagi
Notacja asymptotyczna
Model T(n) = an + b ma wzrost liniowy, czyli O(n). Model T(n) = an² + bn + c ma wzrost kwadratowy, czyli O(n²). W pierwszym modelu zakładamy a > 0, w drugim a > 0. Przy zerowym współczynniku wiodącym stopień wzrostu może być niższy. Notacja O jest ograniczeniem górnym; dla tych modeli z dodatnim współczynnikiem wiodącym dokładniejszą klasą jest odpowiednio Θ(n) i Θ(n²). To modele liczby operacji, a nie uniwersalne wzory na czas dowolnego algorytmu.
Prawo Amdahla
p jest częścią programu, którą można zrównoleglić, a s przyspieszeniem tej części. Wzór zakłada niezmienioną, szeregową część programu; nawet nieskończenie szybka część równoległa ogranicza przyspieszenie do 1/(1 − p), jeśli p < 1. Gdy p = 1, S = s i nie ma skończonej granicy przy s rosnącym bez ograniczeń. Przyjmujemy 0 ≤ p ≤ 1 i s ≥ 1, bez narzutu komunikacji.
Symbole i jednostki
| symbol | znaczenie | jednostka SI | nazwa |
|---|---|---|---|
| liczba operacji dla danych o rozmiarze n | operacja | ||
| rozmiar danych wejściowych | element | ||
| stałe współczynniki modelu liczby operacji | współczynnik | ||
| przyspieszenie: czas sekwencyjny podzielony przez czas równoległy | bez jednostki | ||
| część obliczeń, którą można wykonać równolegle (od 0 do 1) | ułamek | ||
| przyspieszenie części równoległej | bez jednostki | ||
| współczynnik najwyższej potęgi wielomianu | bez jednostki | ||
| współczynnik k-tej potęgi wielomianu | bez jednostki | ||
| początkowy akumulator Hornera | bez jednostki | ||
| akumulator Hornera po kroku k | bez jednostki | ||
| akumulator Hornera przed krokiem k | bez jednostki | ||
| końcowa wartość wielomianu | bez jednostki | ||
| argument wielomianu | bez jednostki | ||
| wielomian | bez jednostki | ||
| pierwszy argument NWD i NWW | bez jednostki | ||
| drugi argument NWD i NWW | bez jednostki | ||
| n-ty wyraz ciągu Fibonacciego | bez jednostki | ||
| poprzedni wyraz ciągu Fibonacciego | bez jednostki | ||
| drugi poprzedni wyraz ciągu Fibonacciego | bez jednostki | ||
| wyraz zerowy ciągu Fibonacciego | bez jednostki | ||
| pierwszy wyraz ciągu Fibonacciego | bez jednostki |
Oznaczenia
- zakres podstawowy
- według podstawy programowej z 2024 r.
- zakres rozszerzony
- zakres rozszerzony podstawy programowej informatyki
- poza podstawą programową
- od 2025 r. nie jest wymagany na maturze
- wzór kluczowy
- najczęściej potrzebny na sprawdzianach i maturze; zakreślony na ekranie, z gwiazdką na wydruku
Zakres wynika z wymagań podstawy programowej; numery wymagań są na stronie każdego wzoru.