Skip to main content

Hva er en algoritme?

Hva er en algoritme? (April 2025)

Hva er en algoritme? (April 2025)
Anonim

En algoritme er et sett med instruksjoner. Definisjonen er virkelig så enkel. En algoritme kan være like enkelt som å gi instruksjoner som dette:

  1. Gå nedover gaten.
  2. Ta første til høyre.
  3. Finn det andre huset til venstre.
  4. Bank på døren.
  5. Lever pakken.

Men mens definisjonen av algoritmen er enkel, kan den faktiske meningen og hvordan den påvirker våre liv være ganske komplisert.

Et eksempel på en algoritme

Et vanlig eksempel på en algoritme som vi bruker i vårt daglige liv, er en oppskrift. Dette settet med instruksjoner gir oss alle ingrediensene vi trenger og veibeskrivelse om hva de skal gjøre med disse ingrediensene. Høres lett, ikke sant?

Men hva om du ikke vet hvor målekoppen holdes? Du trenger en algoritme for å finne den. Du kan til og med trenge en algoritme på hvordan du bruker en målekopper.

Så mens en algoritme er et sett med instruksjoner, må det også ta hensyn til hvem eller hva som skal tolke disse instruksjonene. For eksempel, hvis du gir veibeskrivelse til en venn som beskriver hvordan du kommer fra huset ditt til nærmeste matbutikk, vil din venn bare vite hvordan du kommer til butikken hvis de vet hvor huset befinner seg. De er ikke i stand til å finne den aktuelle butikken fra en annen venns hus.

Slik kan en algoritme være både enkel og kompleks. Og når vi snakker i forhold til datalgoritmer, er det en grunnleggende del å formulere algoritmer å forstå hva en datamaskin kan gjøre.

Hvordan sorteringsalgoritmer utviklet seg

En av de tidligste algoritmer som ble opprettet, var boble sorteringsrutinen. Bubblesort er en metode for sortering av tall, bokstaver eller ord ved å løpe gjennom et datasett, sammenligne hvert sett med verdier side ved side, og bytte dem når det trengs.

Denne sløyfen gjentas til algoritmen kan bevege seg gjennom hele listen uten å måtte bytte noe, noe som betyr at verdiene er sortert riktig. Denne typen algoritme kalles ofte som en rekursiv algoritme fordi den slår seg selv om og om igjen til den fullfører oppgaven.

Den typen algoritme kan se så enkelt ut som:

  1. Gå til den første verdien.
  2. Kontroller verdien mot neste verdi og bytt posisjoner om nødvendig.
  3. Gå til neste verdi og gjenta sammenligningen.
  4. Hvis vi er på slutten av listen, gå tilbake til toppen hvis noen verdi ble byttet under løkken.

Men boble sorter viste seg ikke å være mest effektiv måte å sortere verdier på. Som tiden gikk og datamaskiner ble mer i stand til å gjøre komplekse oppgaver raskt, kom nye sorteringsalgoritmer opp.

En slik algoritme skanner gjennom den første listen og oppretter en andre liste over sorterte verdier. Denne metoden gjør bare et enkelt pass gjennom den opprinnelige listen, og med hver verdi vil den løpe gjennom den andre listen til den finner riktig sted for å sette verdien. Vanligvis er det mer effektivt enn å bruke boble sorteringsmetoden.

Det er her algoritmer kan bli veldig gal. Eller veldig interessant, avhengig av hvordan du ser på det.

Mens boble sorteringsmetoden anses som en av de mest ineffektive metodene for sortering av verdier på mange måter, hvis den opprinnelige listen er forkortet ordentlig, kan boble sorter være en av de mest effektiv. Det er fordi i så fall vil boble sorteringsalgoritmen gå gjennom listen en gang og bestemme at den er riktig sortert.

Dessverre vet vi ikke alltid om vår liste er forkortet, så vi må velge en algoritme som skal være den mest effektive å bruke i gjennomsnitt på et stort antall lister.

Hva vi lærer fra boble sorteringsalgoritmen

  • Algoritmer utvikler seg over tid, ettersom vi finner mer effektive måter å gjøre ting på og / eller datamaskiner blir mer i stand til å utføre komplekse oppgaver.
  • Algoritmer blir noen ganger valgt fordi de er "mer" effektive "mest" av tiden.
  • Bare fordi en algoritme er mer effektiv betyr det ikke at det alltid er det beste i hvert enkelt tilfelle.

Facebook Algoritmer og mer i hverdagen

Algoritmer er på jobb og hjelper mennesker hver dag. Når du søker på nettet, er en algoritme på jobb som prøver å finne de beste søkeresultatene. Spør smarttelefonen din for veibeskrivelse, og en algoritme bestemmer den beste ruten du skal ta. Og når du surfer på Facebook, bestemmer en algoritme hvilken av våre venners Facebook-innlegg som er viktigst for oss. (La oss håpe våre venner ikke finner ut hvilken som Facebook mener vi liker mest!)

Men algoritmisk tenkning kan hjelpe oss langt utover datamaskinens liv. Det kan til og med hjelpe oss med å bygge et bedre smørbrød.

La oss si at jeg starter med to skiver brød, spre sennep på en skive og majones på en annen skive. Jeg legger et stykke ost på brødet med majones, noen skinke på toppen av det, noe salat, to stykker tomat og deretter kapp det med det stykket med sennep på den. God sandwich, ikke sant?

Absolutt hvis jeg spiser det med en gang. Men hvis jeg la det på bordet for en stund, kan den øverste stykke brød bli soggy fra å suge litt av den tomaten. Det er et problem jeg ikke hadde forventet, og jeg kan lage smørbrød i mange år før jeg la merke til det, men når jeg gjør det, kan jeg begynne å tenke på måter å endre algoritmen for å bygge et bedre smørbrød.

For eksempel kunne jeg kvitte seg med tomaten. Men jeg vil ikke miste den tomaten smaken. Så i stedet kan jeg sette tomat på smørbrød etter brød og salat. Dette gjør at salat kan danne en beskyttende barriere mellom tomat og brød.

Slik utvikler en algoritme. Og en algoritme trenger ikke å bli drevet av en datamaskin til å være en algoritme.En algoritme er en prosess, og prosesser er rundt oss.