E-materiały do kształcenia zawodowego

Algorytmy

INF.04. Projektowanie, programowanie i testowanie aplikacji - Technik programista 351406

bg‑green

Słownik pojęć dla e‑materiału

1
Instrukcja korzystania ze słownika

Słownik pojęć do e‑materiału zawiera hasła oraz ich definicje. Hasła zostały ułożone w kolejności alfabetycznej. Wybrane pojęcia zawierają również odsyłacze (linki) do elementów składowych e‑materiału, w których zostały użyte.

Poprawne korzystanie ze słownika pojęć pozwoli ci opanować podstawowy zasób słownictwa branżowego oraz ułatwi przyswojenie wiedzy zawartej w e‑materiale.

1
algorytm
algorytm

przepis postępowania prowadzący do rozwiązania ustalonego problemu, określający ciąg czynności elementarnych, które należy w tym celu wykonać

dekrementacja (ang. decrement)
dekrementacja (ang. decrement)

zmniejszanie wartości zmiennej o jeden; operacja może być realizowana jako instrukcja, operator lub procedura standardowa

drzewo algorytmu
drzewo algorytmu

dynamiczna struktura danych składająca się z elementu węzłowego, zawierającego wskazania na skończoną liczbę rozłącznych węzłów, stanowiących poddrzewa danego węzła; w strukturze tej można wyróżnić takie elementy jak: wierzchołki, krawędzie, liście i korzeń

inkrementacja (ang. increment)
inkrementacja (ang. increment)

zwiększenie wartości zmiennej o jeden; operacja może być realizowana jako instrukcja, operator lub procedura standardowa

iteracja
iteracja

(łac. iteratio – powtarzanie) – czynność powtarzania tej samej operacji w pętli z góry określoną liczbę razy lub aż do spełnienia określonego warunku; w programowaniu metoda polegająca na wielokrotnym stosowaniu tego samego przekształcenia lub procedury

kompresja
kompresja

proces redukcji rozmiaru plików danych w celu zmniejszenia przestrzeni zajmowanej przez te pliki. Jest to istotna technika w dziedzinie przechowywania danych, przesyłania danych przez sieć oraz zarządzania danymi. Kompresja może być stratna lub bezstratna

notacje złożoności czasowej
notacje złożoności czasowej
  • O(n): notacja złożoności czasowej, oznaczająca liniową złożoność czasową.

  • O(n log n): notacja złożoności czasowej dla wielu efektywnych algorytmów sortowania.

  • O(n^2): notacja złożoności czasowej dla algorytmów sortowania o kwadratowej złożoności czasowej

  • Atlas interaktywny „Algorytmy”DnmS1GER7Atlas interaktywny „Algorytmy”

optymalność
optymalność

koncepcja w informatyce, która zakłada projektowanie i implementację algorytmów, struktur danych, systemów czy programów w taki sposób, aby osiągnąć najlepsze możliwe wyniki pod względem czasu, pamięci i efektywności

pivot
pivot

(z ang. punkt osiowy) – element wykorzystywany w technice sortowania „dziel i zwyciężaj”; pivot to wybrany według ustalonego schematu element w sortowanej tablicy, może to być element środkowy, pierwszy, ostatni, losowy. Po wybraniu pivota ustawia się elementy nie większe na lewo od niego, natomiast nie mniejsze na prawo od pivota. W ten sposób powstają dwie części tablicy (niekoniecznie równe), przy czym pierwszej części znajdują się elementy nie większe od drugiej. Następnie każdą z tych podtablic sortuje się osobno według tego samego schematu

pseudokod
pseudokod

sposób zapisu algorytmu; zachowuje strukturę charakterystyczną dla kodu zapisanego w języku programowania (wcięcia, bloki, instrukcje), jednak rezygnuje ze ścisłych reguł składniowych na rzecz prostoty i czytelności

schemat blokowy
schemat blokowy

narzędzie służące do przedstawienia kolejnych czynności w projektowanym algorytmie

sortowanie
sortowanie

porządkowanie, czyli układanie, elementów w określonej kolejności; elementy można sortować rosnąco, malejąco, nierosnąco lub niemalejąco

sortowanie bąbelkowe, ang. bubble sort
sortowanie bąbelkowe, ang. bubble sort

prosty algorytm sortowania, klasyfikowany jako algorytm porównawczy. Jego nazwa odzwierciedla etapowy proces porządkowania poprzez porównywanie i zamianę elementów w taki sposób, że mniejsze elementy „wypływają” w górę listy, a większe „opadają” w dół, osiągając swoje właściwe pozycje w ostatecznie uporządkowanym ciągu. Wykorzystywany przede wszystkim w celach edukacyjnych i demonstracyjnych, algorytm ten dąży do uporządkowania zbioru elementów poprzez iteracyjne porównywanie sąsiednich elementów i zamianę ich miejscami, aż cały zbiór zostanie posortowany

sortowanie metodą dziel i zwyciężaj, ang. divide and conquer
sortowanie metodą dziel i zwyciężaj, ang. divide and conquer

jedna z głównych metod projektowania algorytmów w informatyce, prowadząca do bardzo efektywnych rozwiązań. Nazwa pochodzi od łacińskiej sentencji dziel i rządź (łac. divide et impera). W strategii tej problem dzieli się rekurencyjnie na dwa lub więcej mniejszych podproblemów tego samego (lub podobnego) typu, tak długo, aż fragmenty staną się wystarczająco proste do bezpośredniego rozwiązania. Z kolei rozwiązania otrzymane dla podproblemów scala się, uzyskując rozwiązanie całego zadania

sortowanie przez scalanie, ang. merge sort
sortowanie przez scalanie, ang. merge sort

jeden z efektywnych i powszechnie stosowanych algorytmów sortowania. Jego nazwa odzwierciedla kluczową operację łączenia (scalania) posortowanych podzbiorów w celu uzyskania ostatecznego posortowanego zbioru. Sortowanie przez scalanie należy do kategorii algorytmów sortowania porównawczego, opierających się na porównaniach elementów w celu ustalenia ich wzajemnej kolejności. Algorytm ten znalazł szerokie zastosowanie w sytuacjach, gdzie wymagane jest efektywne sortowanie dużych zbiorów danych, zwłaszcza w przypadkach, gdzie zachowanie stabilności sortowania jest istotne. W implementacji algorytmu sortowania przez scalanie, kluczowe jest zapewnienie poprawności oraz efektywności operacji podziału i scalania

sortowanie przez wstawianie, ang. insertion sort
sortowanie przez wstawianie, ang. insertion sort

jest jednym z prostych i klasycznych algorytmów sortowania. Jego nazwa odzwierciedla kluczową operację wstawiania elementów w odpowiednie miejsce w posortowanej części zbioru. Sortowanie przez wstawianie należy do kategorii algorytmów sortowania porównawczego, gdzie elementy są porównywane i zamieniane w celu ustalenia ich wzajemnej kolejności. Jest często wykorzystywany w sytuacjach, gdzie zbiory danych są względnie małe lub prawie posortowane, co wpływa na jego efektywność. Głównym celem tego algorytmu jest uporządkowanie elementów poprzez iteracyjne wstawianie każdego z nich w odpowiednie miejsce w już posortowanej części zbioru. Algorytm ten jest szczególnie przydatny w przypadkach, gdy wydajność sortowania ma znaczenie, a bardziej złożone algorytmy mogą nie przynieść istotnych korzyści. Może być także używany jako krok pośredni w innych algorytmach sortowania, by zoptymalizować sortowanie mniejszych podzbiorów. Sortowanie przez wstawianie jest skuteczne w przypadkach, gdzie liczba elementów do posortowania jest stosunkowo mała lub gdy dane wejściowe są już częściowo posortowane

sortowanie przez wybieranie, ang. selection sort, metoda minimum
sortowanie przez wybieranie, ang. selection sort, metoda minimum

podstawowy algorytm sortowania, klasyfikowany jako algorytm porównawczy. Jest on częścią kategorii algorytmów prostych, choć mało efektywnych dla dużych zbiorów danych, gdyż jego czas działania jest kwadratowy, tj. O(n^2). Algorytm opiera się na iteracyjnym wybieraniu najmniejszego (lub największego) elementu spośród nieposortowanych oraz umieszczaniu go w odpowiedniej pozycji w już posortowanym fragmencie zbioru. Algorytm sortowania przez wybieranie znajduje zastosowanie przede wszystkim w przypadkach, gdzie priorytetem jest prostota implementacji i niezbyt duże wymagania co do efektywności czasowej. Jego głównym celem jest uporządkowanie zbioru elementów w porządku rosnącym (lub malejącym) poprzez iteracyjnie wybieranie elementu o najmniejszej (lub największej) wartości spomiędzy nieposortowanych i umieszczanie go w odpowiednim miejscu w już posortowanej części zbioru

sortowanie szybkie, ang. quick sort
sortowanie szybkie, ang. quick sort

algorytm sortowania porównawczego, który wykorzystuje podejście „dziel i zwyciężaj”. Jest to efektywny sposób sortowania dużych zbiorów danych poprzez rekurencyjny podział i uporządkowanie elementów w porządku rosnącym lub malejącym. Algorytm ten znajduje zastosowanie w różnych dziedzinach, takich jak systemy baz danych, analiza danych, kompresja oraz algorytmy wyszukiwania. W algorytmie sortowania szybkiego kluczowym elementem jest pivot, który dzieli zbiór na mniejsze podzbiory i umożliwia przeniesienie elementów mniejszych od pivota na lewą stronę, a większych na prawą. Współpraca między elementami w procesie podziału i zamiany jest kluczowa dla skuteczności i wydajności algorytmu

sortowanie zachłanne, ang. greedy sorting
sortowanie zachłanne, ang. greedy sorting

algorytm sortowania, który dokonuje wyborów lokalnie optymalnych na każdym etapie, w nadziei, że prowadzą one do optymalnego rozwiązania globalnego. Algorytmy tego typu zazwyczaj wybierają najbardziej obiecujące opcje w danym momencie, nie analizując całego zbioru danych

sterowanie pętlą
sterowanie pętlą

proces kontroli wykonywania instrukcji lub bloków kodu za pomocą pętli programistycznej. Pętle umożliwiają wielokrotne wykonanie określonych instrukcji w zależności od pewnych warunków. Kontrola nad pętlą obejmuje trzy główne elementy: inicjalizację, warunek i aktualizację. Inicjalizacja polega na wstępnym ustawieniu zmiennych, które są potrzebne do jej działania. Inicjalizację wykonuje się tylko raz, zanim zacznie się właściwe wykonanie pętli. Warunek decyduje, czy pętla powinna być dalej wykonywana, czy nie. Jeśli warunek jest spełniony, pętla będzie kontynuowana; w przeciwnym razie zostanie przerwana. Aktualizacja to krok wykonywany po każdym przejściu instrukcji przez pętlę. Odpowiada za zmiany wartości zmiennych kontrolujących pętlę w celu uniknięcia nieskończonego wykonywania

zmienna sterująca pętlą (iterator)
zmienna sterująca pętlą (iterator)

zmienna używana w strukturze pętli w programowaniu, aby kontrolować warunki kontynuacji lub zakończenia pętli. W większości języków programowania pętle pozwalają na wielokrotne wykonanie pewnego fragmentu kodu, a zmienna sterująca pętlą jest kluczowym elementem w kontrolowaniu tego procesu