Pri naših poskusih s tabelami dolžine n = 100, 200, ..., 500 elementov smo dobili naslednje čase izvajanja:
Vidimo torej, da je funkcija NajdiVsoto2
sicer res hitrejša od prvotne rešitve NajdiVsoto
, vendar čas izvajanja pri obeh narašča približno enako hitro v odvisnosti od velikosti vhodnih podatkov (torej od n); funkcija NajdiVsoto
se v vsakem primeru izvaja približno dvakrat tako dolgo kot funkcija NajdiVsoto2
.
Veliko opaznejša pa je razlika med tema dvema funkcijama in našo zadnjo rešitvijo, NajdiVsoto3
. Na prvi pogled se mogoče celo zdi, da pri slednji čas izvajanja sploh ni odvisen od n. Če jo pogledamo od blizu, vidimo, da to sicer ni res in da tudi pri tej funkciji čas narašča z n, vendar veliko počasneje kot pri prvih dveh:
Čas izvajanja pri funkciji NajdiVsoto3
narašča približno premosorazmerno z n, pri funkcijah NajdiVsoto
in NajdiVsoto2
pa narašča veliko hitreje od n – tam pravzaprav narašča približno premosorazmerno z n2. Matematično bi rekli, da je čas izvajanja pri NajdiVsoto3
linearna funkcija n, pri NajdiVsoto
in NajdiVsoto2
pa kvadratna funkcija n. (Ti funkciji na primer za n = 500 porabita 25-krat toliko časa kot za n = 100. Za obdelavo 5-krat večjega primerka problema sta torej porabili 52 = 25-krat več časa. Pri funkciji NajdiVsoto3
pa za 5-krat večji problem porabimo le 5-krat več časa.)
Pri prvih dveh funkcijah smo videli, da ne glede na to, kako velik n gledamo, se NajdiVsoto
izvaja približno dvakrat tako dolgo kot NajdiVsoto2
. Ko pa primerjamo čas izvajanja teh dveh funkcij s funkcijo NajdiVsoto3
, vidimo, da to razmerje narašča prek vseh meja (premosorazmerno z n-jem). Pri n = 100 se je NajdiVsoto
izvajala 17-krat tako dolgo kot NajdiVsoto3
, pri n = 500 pa že 82-krat tako dolgo: