Skip to main content

Vad är algoritmanalys?

Algoritmanalys är ett fält av datavetenskap som är dedikerad till att förstå algoritmernas komplexitet.Algoritmer definieras generellt som processer som utför en serie operationer till slut.Algoritmer kan uttryckas på många sätt, i flödesdiagram, ett naturligt språk och datorprogrammeringsspråk.Algoritmer används i matematik, dator och lingvistik, men en vanligaste användning är i datorer för att göra beräkningar eller bearbeta data.Algoritmanalys handlar om algoritmer skrivna på datorprogrammeringsspråk, som är baserade på matematisk formalism

En algoritm är i huvudsak en uppsättning instruktioner för en dator för att utföra en beräkning på ett visst sätt.Till exempel skulle en dator använda en algoritm för att beräkna en anställds lönecheck.För att datorn ska utföra beräkningarna behöver den lämplig data som läggs in i systemet, till exempel den anställdes lönesats och antalet arbetade timmar.

Mer än en algoritm kan arbeta för att utföra samma operation, men vissa algoritmer använder mer minne och tar längre tid att utföra än andra.Hur vet vi hur väl algoritmer som fungerar i allmänhet med tanke på skillnader mellan datorer och datainmatningar?Det är här algoritmanalys kommer in.

Ett sätt att testa en algoritm är att köra ett datorprogram och se hur bra det fungerar.Problemet med detta tillvägagångssätt är att det bara berättar hur bra algoritmen fungerar med en viss dator och uppsättning ingångar.Syftet med algoritmanalys är att testa och sedan dra slutsatser om hur väl en viss algoritm fungerar i allmänhet.Detta skulle vara mycket svårt och tidskrävande att göra på enskilda datorer, så forskare utformar modeller för datorfunktion för att testa algoritmer.

I allmänhet är algoritmanalys mest upptagen av att ta reda på hur mycket tid ett program tar för att köra och hur mycket minneslagringsutrymme det behöver för att utföra programmet.I synnerhet använder datavetare algoritmanalys för att bestämma hur data som tillförs till ett program påverkar dess totala körtid, hur mycket minnesutrymme datorn behöver för programdata, hur mycket utrymme programmets kod tar i datorn, oavsett om en algoritm producerar korrektBeräkningar, hur komplex ett program är och hur bra det handlar om oväntade resultat.