Un algoritm este un set de instrucțiuni bine definite, într-o succesiune logică, utilizat pentru rezolvarea unei probleme sau pentru executarea unei sarcini. Complexitatea unui algoritm se referă la resursele necesare pentru a rula un algoritm, cum ar fi timpul de execuție și memoria ocupată.