Algoritmegenskaper, vad det är för, delar, exempel

1532
Anthony Golden
Algoritmegenskaper, vad det är för, delar, exempel

A algoritm det är en uppsättning instruktioner som är utformade för att utföra en specifik uppgift. Det vill säga det är ett systematiskt förfarande som i ett begränsat antal steg ger svaret på en fråga eller lösningen på ett problem. Ett exempel på en algoritm är den för Googles sökmotor, där den när du infogar ett ord ger flera resultat i form av webbsidor.

Det kan vara en komplex process, som att spela en musikfil eller en enkel operation, som att lägga till två nummer. Vid datorprogrammering skapas algoritmer som funktioner. Dessa funktioner är små program som kan refereras till av ett större program.

En bildvisningsapplikation kan innehålla ett bibliotek med funktioner, var och en med en specifik algoritm för att representera olika bildfilformat..

Ett bildredigeringsprogram kan innehålla algoritmer utformade för att bearbeta bilddata. Några exempel är beskärning, storleksändring, skärpning, suddighet, minskning av röda ögon och förbättring av färg..

Artikelindex

  • 1 Egenskaper för en algoritm
    • 1.1 Tydlighet och precision
    • 1.2 Väl definierade ingångar
    • 1.3 Väl definierade utgångar
    • 1.4 Ändlighet
    • 1.5 Möjligt
    • 1.6 Språkets oberoende
    • 1.7 Effektiva program
  • 2 Vad är en algoritm för?
    • 2.1 Filkomprimering
    • 2.2 Datakryptering
  • 3 Hur fungerar en algoritm?
    • 3.1 Exempel på fall
  • 4 Delar av en algoritm
    • 4.1 Förvärv av indata
    • 4.2 Beräkning
    • 4.3 Urval
    • 4.4 Iteration
    • 4.5 Rapport om resultat eller resultat
  • 5 Typer av algoritmer
    • 5.1 Rekursiv algoritm
    • 5.2 Dela och erövra algoritmen
    • 5.3 Dynamisk programmeringsalgoritm
    • 5.4 Brute force algoritm
    • 5.5 Backtracking-algoritm
  • 6 Exempel på algoritmer
    • 6.1 Rekursiv algoritm
    • 6.2 Dynamisk programmeringsalgoritm
    • 6.3 Backtracking-algoritm
    • 6.4 Olika exempel
  • 7 Referenser

Egenskaper för en algoritm

Tydlighet och precision

Algoritmen måste vara tydlig och entydig. Var och en av dina steg eller handlingar måste vara exakt definierade, strikt tydliga i alla avseenden och måste entydigt bara ha en mening..

Väl definierade ingångar

En algoritm har noll eller fler ingångar, hämtade från en specifik uppsättning objekt. Om algoritmen indikerar att ingångsdata ska tas bör dessa ingångsdata vara väl definierade.

Väl definierade utgångar

Algoritmen har alltid en eller flera utgångar, som har en relation till ingångarna. Algoritmen måste tydligt definiera vilken utdata som kommer att produceras och måste också vara väl definierad.

Endlighet

Algoritmen måste vara ändlig, det vill säga den måste alltid sluta någon gång, efter ett begränsat antal steg, och inte bli hakad i oändliga slingor eller liknande.

Möjlig

Algoritmen måste vara smart och enkel, på ett sådant sätt att den kan köras utan problem med tillgängliga resurser. Därför får den inte innehålla någon framtida teknik.

Språkoberoende

Den utformade algoritmen måste vara oberoende av språket, det vill säga den måste bestå av enkla instruktioner som kan implementeras på vilket programmeringsspråk som helst och resultatet är dock alltid detsamma som förväntat.

Effektiva program

Det finns alltid olika sätt att utföra en specifik operation inom ett program. Därför försöker programmerare skapa så effektiva algoritmer som möjligt..

Med användning av mycket effektiva algoritmer kan det garanteras att programmen körs i högsta hastighet, med ett minimum av systemresurser.

Algoritmer produceras dock inte alltid perfekt första gången. Av denna anledning vill utvecklare förbättra dem för att inkludera dem i framtida programuppdateringar..

Därför, när en ny version av en applikation med bättre prestanda är känd, betyder det att den här versionen innehåller effektivare algoritmer.

Vad är en algoritm för?

Algoritmen är ett extremt användbart instrument som används för att utföra arbete. Att välja den bästa algoritmen i datorer säkerställer att datorn utför den givna uppgiften på bästa möjliga sätt.

Därför tjänar det till att optimera ett datorprogram med tillgängliga resurser. Det vill säga när du bestämmer dig för att lösa ett problem genom de bästa algoritmerna, vill du ha den bästa kombinationen av programhastighet och lägre minnesförbrukning.

De olika algoritmer som kan studeras är lika olika som de problem de löser. Det är dock mycket troligt att problemet du försöker lösa liknar ett annat problem i vissa avseenden..

Genom att förstå ett brett spektrum av algoritmer kan du välja det som passar bäst för ett problem och tillämpa det korrekt.

Filkomprimering

Dessa algoritmer är specifikt inställda och optimerade för de typer av filer de riktar in sig på. Till exempel använder varje ljudformat olika sätt att lagra data. När den avkodas av ljudkodeken genererar den en ljudfil som liknar den ursprungliga vågformen.

Datakryptering

Algoritmer används också för att skydda data eller kommunikationslinjer. Istället för att lagra komprimerad data så att den använder mindre diskutrymme lagras den på ett sätt som andra program inte kan upptäcka den. När data krypteras ser det som lagras inte ut som det som är.

Hur fungerar en algoritm?

För att få en dator att göra något måste du skriva ett datorprogram. För att skriva detta program måste du berätta för datorn steg för steg vad du vill att den ska göra.

Datorn kör sedan programmet och utför varje instruktion automatiskt för att uppnå det slutliga resultatet. Förutom att ange vad du ska göra med datorn kan du också välja hur den ska göra det, genom algoritmen, som är den grundläggande tekniken som används för att utföra arbetet.

Exempel på fall

Låt oss säga att du har en vän som anländer till flygplatsen och måste åka från flygplatsen till vårt hus. Dessa är fyra olika algoritmer som kan ges för att lösa denna situation:

Ring mig algoritm

- När planet kommer, ring min mobiltelefon.

- Möt mig utanför bagageanmälningsområdet.

Taxi-algoritm

- Gå till taxistationen.

- Gå in i en taxi.

- Ge föraren min adress.

Bussalgoritm

- Lämna buss nummer 70.

- När du kommer till Main Street, ta buss 14.

- Gå av på Elmo Street.

- Gå två kvarter norrut till mitt hus.

Algoritm hyra ett fordon

- Ta en buss till den plats där de hyr bilar.

- Hyr ett fordon.

- Följ GPS-instruktionerna för att komma till mitt hus.

Alla fyra algoritmer uppnår exakt samma mål, men var och en gör det på olika sätt. Varje algoritm har också olika kostnad och restid. Därför väljs algoritmen efter omständigheterna.

Delar av en algoritm

Förvärv av indata

Algoritmen måste ha vissa resurser för att kunna läsa värdena från en extern källa. De flesta algoritmer kräver vissa datavärden för att definiera ett specifikt problem. Till exempel koefficienterna för ett polynom.

Beräkning

Algoritmen måste ha vissa resurser för att kunna utföra aritmetiska beräkningar, jämförelser, kontrollera logiska förhållanden etc..

Urval

Algoritmen måste ha vissa medel för att kunna välja mellan två eller flera möjliga handlingsmetoder, baserat på initial data, användarinmatning och / eller beräknade resultat..

Iteration

Algoritmen måste ha vissa medel för att kunna utföra en uppsättning instruktioner upprepade gånger, antingen för ett fast antal gånger eller tills något logiskt villkor är uppfyllt.

Rapportera resultat eller resultat

Algoritmen måste ha vissa resurser för att kunna informera användaren om de resultat den har beräknat, eller för att kunna begära ytterligare data från användaren.

Typer av algoritmer

Rekursiv algoritm

Denna algoritm är väldigt intressant, eftersom den kallar sig med ett annat värde som en ingångsparameter, som den fick efter att ha löst den tidigare ingångsparametern. Det vill säga det kallar sig upprepade gånger tills problemet är löst.

Problem som Tower of Hanoi eller den djupa sökningen i en graf kan enkelt lösas med dessa typer av algoritmer..

Dela och erövra algoritmen

I dessa algoritmer är den uppdelad i två delar. I den första delen är det aktuella problemet uppdelat i mindre delproblem av samma typ. På samma sätt löses dess delproblem i den andra delen och sedan kombineras båda delarna för att producera den slutliga lösningen på problemet..

Med dessa algoritmer kan du till exempel utföra kombinationssorter och snabba sorteringar.

Dynamisk programmeringsalgoritm

Dessa algoritmer fungerar genom att komma ihåg resultaten från föregående körning och använda dem för att hitta nya resultat. De löser komplexa problem genom att dela upp dem i flera enkla delproblem och sedan lösa var och en av dem och lagra dem senare för senare användning..

Brute force-algoritm

Denna algoritm söker blint efter alla möjliga lösningar för att hitta en eller flera lösningar som kan lösa en funktion. Du kan tänka dig brute force som att använda alla möjliga kombinationer av siffror för att öppna ett kassaskåp..

Fallback-algoritm

Denna algoritm löser problem rekursivt och försöker lösa ett problem genom att lösa varje del av det. Om lösningen misslyckas tas den bort och spåras för att hitta en annan lösning.

Det vill säga, denna algoritm löser ett delproblem, men om detta inte löser det totala problemet, ångrar det det sista steget och börjar igen för att hitta lösningen på problemet..

Exempel på algoritmer

Rekursiv algoritm

Denna pseudokod hittar faktorn för ett icke-negativt heltal "N" med en rekursionsalgoritm:

Dynamisk programmeringsalgoritm

Fibonacci-sekvensen är ett bra exempel på en dynamisk programmeringsalgoritm. Du kan se det i den här pseudokoden:

- Om (N = 0 eller N = 1) är Fibonacci (N) = 0

- Om inte, Fibonacci (N) = Fibonacci (N-1) + Fibonacci (N-2)

Fallback-algoritm

De 8 drottningarnas schackproblem är ett bra exempel. Detta problem fastställer att det finns åtta drottningstycken på ett schackbräde och de måste placeras på ett sådant sätt att ingen av drottningarna är i stånd att attackera någon annan efter att de är organiserade..

Olika exempel

- Algoritm för HIV-diagnos.

Algoritm för diagnos av HIV. Källa: Immunopedia / CC BY-SA (https://creativecommons.org/licenses/by-sa/4.0)

- Sökmotorer på Internet använder egna algoritmer för att visa de mest relevanta resultaten från deras sökindex för specifika frågor..

- Recept, som matematiska ekvationer, är algoritmer.

- E-post vet var du ska skicka tack vare algoritmer.

- Innehållet som ses på sociala nätverk kommer via algoritmer. Faktum är att allt som görs på webben är en produkt av algoritmer.

- Videospel är algoritmisk berättande.

- Smartphone-appar är bara algoritmer.

- De flesta finansiella transaktioner utförs med algoritmer.

- Varje gång en kolumn sorteras i ett kalkylblad ingriper algoritmer.

Referenser

  1. Lee Rainie (2017). Kodberoende: För- och nackdelar med algoritmåldern. Pew Research Center. Hämtad från: pewresearch.org.
  2. Tekniska villkor (2020). Algoritm. Hämtad från: techterms.com.
  3. Britannica (2020). Algoritm. Hämtad från: britannica.com.
  4. Educba (2020). Typer av algoritmer. Hämtad från: educba.com.
  5. How to Geek (2016). Vad är datoralgoritmer och hur fungerar de? Hämtad från: howtogeek.com.
  6. How Stuff Works (2020). Vad är en datoralgoritm? Hämtad från: computer.howstuffworks.com.

Ingen har kommenterat den här artikeln än.