Algoritme

Softwareudvikling handler om, at man har nogle opgaver, som man gerne vil have en computer til at udføre. I sidste ende skal der skrives et program, og det kræver, at man udvikler en strategi for, hvordan man løser hver del-opgave. Sådan en strategi kaldes en algoritme: En algoritme er en liste af veldefinerede trin til at løse en opgave. En algoritme er ikke det samme som et program, men en algoritme er så detaljeret en beskrivelse, at det ikke kræver nogen større tankevirksomhed at omsætte algoritmen til et program.

For nogle opgaver er det nemt at opstille en algoritme. Der findes opgaver, hvor der kun er en rimelig måde at gøre tingene på, og hvor løsningen næsten giver sig selv. I den situation vil de fleste end ikke tænke på algoritmer men springe direkte til programmeringen.

I andre tilfælde går det knap så nemt. Det er ikke ualmindeligt at møde opgaver, hvor der kan tænkes flere forskellige måder at gøre tingene på. Det betyder, at man kan opstille flere forskellige algoritmer for den samme opgave, og i nogle tilfælde vil der være enorm forskel på ydeevnen af de programmer, der kommer ud af de forskellige algoritmer. Man kan for eksempel komme ud for, at en af algoritmerne giver anledning til et program, der er mange gange hurtigere end programmer afledt af de andre algoritmer.

Mange af de opgaver, man møder som softwareudvikler, er standard­opgaver som sortering, søgning eller visse former for optimering. Her er der for længst udviklet algoritmer, som man bare kan slå op. Når man programmerer, møder man dog flere opgaver, der ikke er standard­opgaver, og her bliver fårene skilt fra bukkene. Med til succesfuld software­udvikling hører evnen til at kunne opstille flere algoritmer til den samme opgave, og at kunne analysere algoritmerne med henblik på at udvælge den bedste.