Poraba časa

Doslej smo se pri programiranju večinoma ukvarjali s tem, kako sploh napisati program, ki bo izračunal želeni rezultat. Vendar pa je pri reševanju problemov z računalnikom pomembno še nekaj drugega: naš program mora do rezultata priti dovolj hitro. Program, ki bi izračunal pravilen rezultat, vendar bi za to porabil sto let, nam ne pomaga kaj dosti.

Zato je, ko sestavljamo algoritem ali pišemo program za reševanje nekega problema, koristno razmisliti tudi o tem, koliko časa bo računalnik porabil za njegovo izvajanje. Pogosto se izkaže, da lahko isti problem rešimo na več različnih načinov in da so nekateri od njih veliko hitrejši, nekateri pa počasnejši.

Kot lahko različni atleti različno hitro pretečejo progo, tako lahko različni algoritmi različno hitro rešijo dani problem.

To pa ne pomeni, da nas v praksi vedno zanima najhitrejša možna rešitev nekega problema. Hitrejša rešitev se lahko izkaže za bolj zapleteno, kar pomeni, da bomo imeli več dela s pisanjem rešitve in odpravljanjem napak ter da jo bo težje vzdrževati. Nič ni narobe, če namesto nje uporabimo neko preprostejšo in počasnejšo rešitev, če je ta za naš namen vseeno dovolj hitra.

Merjenje časa

Primer

Preproste rešitve te naloge ni težko zapisati. Naj bo n število elementov v tabeli a. Iščemo torej par elementov, recimo jima a[i] in a[j], ki naj bi se seštela v s; pri tem lahko imata i in j vrednosti od 0 do n - 1. Lahko gremo torej v zanki po vseh možnih i, nato pa pri vsakem i še z gnezdeno zanko po vseh možnih j. Za vsak par števcev lahko zdaj preverimo, če se pripadajoča elementa seštejeta v s.

V pythonu bi ta postopek zapisali takole:

Izvedi Počisti