> Złożoność i efektywność.
Złożoność obliczeniowa algorytmu zależy od liczby operacji niezbędnych dla ukończenia algorytmu. W przypadku algorytmów uniwersalnych złożoność obliczeniowa zależeć będzie od wielkości zbioru danych, na jakich pracuje algorytm. Złożoność obliczeniowa jest zatem funkcją wielkości zbioru danych. Złożoność pamięciowa algorytmu to wielkość pamięci (operacyjnej lub masowej) niezbędnej do wykonania algorytmu.
To wielkość pamięci zajmowanej przez wszystkie zmienne oraz pliki i programy.
Ze złożonością wiąże się pojęcie algorytmu optymalnego, czyli takiego, który dla rozwiązania danego problemu jest bezwzględnie najlepszy.