Hvad er algoritme analyse?
Algoritmeanalyse er et felt inden for datalogi, der er dedikeret til at forstå kompleksiteten af algoritmer. Algoritmer defineres generelt som processer, der udfører en række operationer til en ende. Algoritmer kan udtrykkes på mange måder i flowdiagrammer, et naturligt sprog og computerprogrammeringssprog. Algoritmer bruges i matematik, computing og lingvistik, men en mest almindelig anvendelse er i computere til at udføre beregninger eller behandle data. Algoritmeanalyse omhandler algoritmer skrevet på computerprogrammeringssprog, der er baseret på matematisk formalisme
En algoritme er i det væsentlige et sæt instruktioner for en computer til at udføre en beregning på en bestemt måde. For eksempel vil en computer bruge en algoritme til at beregne en medarbejders løncheck. For at computeren skal kunne udføre beregningerne, har den brug for passende data, der er lagt i systemet, såsom medarbejderens lønprocent og antal arbejdstimer.
Mere end en algoritme fungerer måske for at udføre den samme operation, men nogle algoritmer bruger mere hukommelse og tager længere tid at udføre end andre. Hvordan ved vi også, hvor godt algoritmer fungerer generelt i betragtning af forskelle mellem computere og dataindgange? Det er her algoritme-analyse kommer ind.
En måde at teste en algoritme er at køre et computerprogram og se, hvor godt det fungerer. Problemet med denne tilgang er, at den kun fortæller os, hvor godt algoritmen fungerer med en bestemt computer og sæt input. Formålet med algoritmeanalyse er at teste og derefter drage konklusioner om, hvor godt en bestemt algoritme fungerer generelt. Dette ville være meget vanskeligt og tidskrævende at gøre på individuelle computere, så forskere udtænker modeller af computerfunktion til at teste algoritmer.
Generelt er algoritmeanalyse mest optaget af at finde ud af, hvor lang tid et program tager at køre, og hvor meget hukommelseslagringsplads det har brug for at udføre programmet. Især bruger computerforskere algoritmeanalyse til at bestemme, hvordan de data, der tildeles et program, påvirker dets samlede driftstid, hvor meget hukommelsesplads computeren har brug for programdata, hvor meget plads programkoden tager i computeren, om en algoritme producerer korrekt beregninger, hvor kompliceret et program er, og hvor godt det håndterer uventede resultater.