Скривена сложеност

Често процену сложености грубо вршимо тако што анализирамо структуру петљи у програму, занемарући остале операције (обично за све сем петљи сматрамо да је \(O(1)\)). То може бити прилично варљиво, јер се у коду могу позивати функције (било кориснички дефинисане, било библиотечке) које нису константне сложености. Још горе, и неки оператори могу бити неконстантне сложености (обично линеарне).

string rez = "";
foreach (char c : s)
   rez = c + rez;

Иако има само једну петљу, претходни фрагмент може бити сложености \(O(n^2)\), где је \(n\) дужина ниске s. Наиме, додавање карактера на почетак ниске у језику C++ може бити линеарне сложености \(O(n)\), где је \(n\) дужина ниске (јер захтева померање наредних карактера надесно).