Skip to main content

Vad är en algoritm?

BeachBody Coach Summit Keynote 2016 | Gary Vaynerchuk (April 2025)

BeachBody Coach Summit Keynote 2016 | Gary Vaynerchuk (April 2025)
Anonim

En algoritm är en uppsättning instruktioner. Definitionen är så enkelt. En algoritm kan vara lika lätt som att ge instruktioner så här:

  1. Gå nerför gatan.
  2. Ta första till höger.
  3. Hitta det andra huset till vänster.
  4. Knacka på dörren.
  5. Leverera paketet.

Men medan definitionen av algoritmen är enkel, kan den faktiska meningen och hur den påverkar våra liv vara ganska komplexa.

Ett exempel på en algoritm

Ett vanligt exempel på en algoritm som vi använder i våra dagliga liv är ett recept. Denna uppsättning instruktioner ger oss alla ingredienser vi behöver och anvisningar om vad du ska göra med dessa ingredienser. Låter enkelt, eller hur?

Men vad händer om du inte vet var mätbägaren hålls? Du behöver en algoritm för att hitta den. Du kan till och med behöva en algoritm om hur man använder en mätkopp.

Så medan en algoritm är en uppsättning instruktioner, måste den också ta hänsyn till vem eller vad som ska tolka dessa instruktioner. Till exempel, Om du ger vägbeskrivning till en vän som beskriver hur du kommer från ditt hus till närmaste mataffär, kommer din vän bara veta hur man kommer till den butiken om de vet var ditt hus ligger. De är inte kapabla (ännu) att hitta den specifika mataffären från en annan väns hus.

Så här kan en algoritm vara både enkel och komplex. Och när vi pratar när det gäller datalgoritmer är det en grundläggande del av formuleringen av algoritmer att förstå vad en dator kan göra.

Hur sorteringsalgoritmer utvecklats

En av de tidigaste algoritmerna som skapades var rutan för bubbelsortering. Bubbelsort är en metod för att sortera tal, bokstäver eller ord genom att lösa igenom en dataset, jämföra varje uppsättning värden sida vid sida och byta dem vid behov.

Denna slinga upprepas tills algoritmen kan röra sig genom hela listan utan att behöva byta något, vilket innebär att värdena sorteras korrekt. Denna typ av algoritm kallas ofta som en rekursiv algoritm eftersom den slingrar på sig om och om igen tills den fullbordar uppgiften.

Den typen av algoritmen kan se så enkelt ut som:

  1. Gå till det första värdet.
  2. Kontrollera det värdet mot nästa värde och byt positioner om det behövs.
  3. Gå till nästa värde och upprepa jämförelsen.
  4. Om vi ​​är i slutet av listan, gå tillbaka till toppen om något värde byttes under slingan.

Men bubbelsort visade sig inte vara mest effektiv sätt att sortera värden. När tiden gick och datorer blev mer kapabla att göra komplicerade uppgifter snabbt, kom nya sorteringsalgoritmer upp.

En sådan algoritm skannar genom den första listan och skapar en andra lista över sorterade värden. Den här metoden gör bara ett enda pass genom den ursprungliga listan, och med varje värde går det igenom den andra listan tills den hittar rätt plats för att sätta värdet. Vanligtvis är det effektivare än att använda bubbelsorteringsmetoden.

Det är här som algoritmer kan bli riktigt galen. Eller riktigt intressant, beroende på hur du tittar på det.

Medan bubbelsorteringsmetoden anses vara en av de mest ineffektiva metoderna för att sortera värden på många sätt, om originallistan förkortas ordentligt kan bubbelsortet vara en av de mest effektiv. Det beror på att i så fall kommer bubbelsortalgoritmen att gå igenom listan en gång och bestämma att den är korrekt sorterad.

Tyvärr vet vi inte alltid om vår lista är förkortad, så vi måste välja en algoritm som ska vara effektivast att använda i genomsnitt över ett stort antal listor.

Vad vi lär oss från bubbelsortalgoritmen

  • Algoritmer utvecklas över tid då vi hittar effektivare sätt att göra saker och / eller datorer blir mer kapabla att utföra komplexa uppgifter.
  • Algoritmer är ibland utvalda eftersom de är "mer" effektiva "mest" av tiden.
  • Bara för att en algoritm är effektivare innebär det inte att det alltid är det bästa i varje enskilt fall.

Facebook Algoritmer och mer i vardagslivet

Algoritmer är på jobbet och hjälper människor varje dag. När du söker på webben är en algoritm på jobbet och försöker hitta de bästa sökresultaten. Fråga din smartphone om vägbeskrivning, och en algoritm bestämmer den bästa vägen för dig att ta. Och när du surfar på Facebook bestämmer en algoritm vilken av våra väns Facebook-inlägg som är viktigast för oss. (Låt oss hoppas att våra vänner inte kan ta reda på vilken Facebook som vi tycker mest om!)

Men algoritmiskt tänkande kan hjälpa oss långt bortom våra liv. Det kan även hjälpa oss att bygga en bättre smörgås.

Låt oss säga att jag börjar med två skivor bröd, sänka senap på en skiva och majonnäs på en annan skiva. Jag lägger en ost på brödet med majonnäs, lite skinka på toppen av det, lite sallat, två skivor tomater och kepsa det med det där skivet med senap på den. Bra smörgås, eller hur?

Definitivt om jag äter det genast. Men om jag lämnar det på bordet ett tag, kan den övre skivan få soggy från att suga upp en del av den där tomaten. Det är ett problem som jag inte riktigt förutse, och jag kan göra smörgåsar i flera år innan jag märker det, men när jag gör det kan jag börja tänka på sätt att ändra min algoritm för att bygga en bättre smörgås.

Till exempel kunde jag bli av med tomat. Men jag vill inte förlora den tomatsmaken. Så istället kan jag lägga tomaten på smörgåsen efter brödet och sallat. Detta gör att sallat kan bilda en skyddande barriär mellan tomaten och brödet.

Så här utvecklas en algoritm. Och en algoritm behöver inte köras av en dator för att vara en algoritm.En algoritm är en process, och processer finns runt oss.