Un algoritmo è una sequenza finita di istruzioni ben definite e implementabili da un computer, tipicamente usata per risolvere una classe di problemi o per eseguire un calcolo. Sono i mattoni fondamentali di qualsiasi software.

Gli aspetti chiave includono:

  • Efficienza: Le sue performance in termini di tempo e memoria ($O(n)$).
  • Correttezza: La sua capacità di produrre l’output corretto per tutti gli input validi.
  • Pattern di progettazione: Approcci comuni come divide et impera, programmazione dinamica o algoritmi greedy.
Algoritmi