algorytmach
Algorytm to jasno określony ciąg kroków, który przetwarza dane wejściowe i generuje dane wyjściowe. Każde wykonanie algorytmu zaczyna się od wejścia i kończy rezultatem, a poszczególne kroki muszą być wykonywane w skończonej liczbie iteracji. Algorytmy stanowią fundament informatyki i teoretycznie opisują, jak rozwiązywać problemy.
W odróżnieniu od programu, który jest konkretną implementacją algorytmu w języku programowania, algorytm to abstrakcyjny opis
Złożoność obliczeniowa opisuje zasoby potrzebne do wykonania algorytmu — czas i zużycie pamięci — w zależności od rozmiaru
Typowe paradygmaty projektowania to podział i zwycięstwo (divide and conquer), dynamiczne programowanie, algorytmy zachłanne, backtracking, heurystyki
Przykłady klasycznych algorytmów: Euklidesa do wyznaczania największego wspólnego dzielnika; sortowanie szybkie (quicksort) i scalanie (mergesort); Dijkstra
Zastosowania obejmują sortowanie i przetwarzanie danych, kompresję, kryptografię, sztuczną inteligencję, analitykę danych i inżynierię oprogramowania.
Historia algorytmów wiąże się z pracami nad arytmetyką i logiką, a w XX wieku rozwinęła się formalna