Ce este un algoritm?

Descoperiți modul în care algoritmii rulează lumea

Un algoritm este un set de instrucțiuni. Definiția este într-adevăr atât de simplă. Un algoritm poate fi la fel de ușor ca și instrucțiunile de genul:

  1. Du-te pe stradă
  2. Prima la dreapta
  3. Găsiți a doua casă din stânga
  4. Bateți pe ușă și
  5. Livrați pachetul.

Dar, în timp ce definiția algoritmului este simplă, sensul real și modul în care afectează viața noastră pot fi destul de complexe.

Un exemplu de algoritm

Un exemplu comun al unui algoritm pe care îl folosim în viața noastră de zi cu zi este o rețetă. Acest set de instrucțiuni ne oferă toate ingredientele de care avem nevoie și instrucțiuni despre ce să facem cu aceste ingrediente. Sună ușor, nu?

Dar dacă nu știți unde este ținută ceasca de măsurare? Ați avea nevoie de un algoritm pentru ao găsi. S-ar putea să aveți nevoie chiar de un algoritm cu privire la modul de utilizare a unei cupe de măsurare.

Deci, în timp ce un algoritm este un set de instrucțiuni, trebuie să țineți cont și de cine sau ce va interpreta aceste instrucțiuni. De exemplu, dacă dați instrucțiuni unui prieten care detaliază cum să obțineți de la casa dvs. la cel mai apropiat magazin alimentar, prietenul dvs. va ști doar cum să ajungă la magazinul respectiv, dacă știe unde se află casa dvs. Ei nu sunt capabili (încă) să găsească un anumit magazin alimentar, să spună, casa unui alt prieten.

Acesta este modul în care un algoritm poate fi atât simplu, cât și complex. Și când vorbim în termeni de algoritmi de calcul, înțelegerea a ceea ce este capabil să facă un calculator este o parte fundamentală a algoritmilor de formulare.

Modul în care algoritmii de sortare au evoluat

Unul dintre cele mai vechi algoritmi creat a fost rutina de sortare a bulei. Tipul de tip "bubble" este o metodă de sortare a numerelor, literelor sau cuvintelor prin looparea printr-un set de date, compararea fiecărui set de valori unul lângă celălalt și schimbarea acestora atunci când este necesar.

Această buclă se repetă până când algoritmul se poate deplasa prin întreaga listă fără a fi nevoie să schimbe nimic, ceea ce înseamnă că valorile sunt sortate corect. Acest tip de algoritm este deseori referit ca un algoritm recursiv, deoarece se bate pe sine peste și peste până la finalizarea sarcinii.

Algoritmul ar putea arăta la fel de simplu:

  1. Mergeți la prima valoare.
  2. Verificați această valoare în funcție de valoarea următoare și de pozițiile swap, dacă este necesar
  3. Mergeți la următoarea valoare și repetați comparația.
  4. Dacă suntem la sfârșitul listei, mergeți înapoi în partea de sus dacă orice valoare a fost schimbată în timpul buclă.

Dar sortarea bulelor nu sa dovedit a fi cea mai eficientă metodă de sortare a valorilor. Odată cu trecerea timpului și computerele devenind mai capabile să facă rapid sarcini complexe, au apărut noi algoritmi de sortare.

Un astfel de algoritm scanează prin prima listă și creează oa doua listă de valori sortate. Această metodă face doar o singură trecere prin lista originală și, cu fiecare valoare, va trece prin a doua listă până când va găsi locul corect pentru a pune valoarea. De obicei, este mai eficient decât utilizarea metodei de sortare cu bule.

Acesta este locul unde algoritmii pot deveni cu adevărat nebuni. Sau chiar foarte interesant, în funcție de modul în care te uiți la el.

În timp ce metoda de sortare a bulei este considerată una dintre cele mai ineficiente metode de sortare a valorilor în multe moduri, dacă lista originală este presorted corect, sortarea bulelor poate fi una dintre cele mai eficiente. Aceasta deoarece, în acest caz, algoritmul de sortare a bulelor va trece prin listă o singură dată și va determina că este sortat corect.

Din păcate, nu știm întotdeauna dacă lista noastră este presortată, deci trebuie să alegem un algoritm care va fi cel mai eficient pentru a fi utilizat în medie pe un număr mare de liste.

Ce învățăm din sortarea de bule

Facebook Algoritmi și mai mult în viața de zi cu zi

Algoritmii sunt la lucru ajutând oamenii în fiecare zi. Când căutați pe web, un algoritm funcționează în încercarea de a găsi cele mai bune rezultate de căutare. Adresați-vă telefonului smartphone pentru indicații de orientare și un algoritm decide cel mai bun traseu pe care îl puteți lua. Iar atunci când navigați pe Facebook, un algoritm decide care dintre postările prietenului nostru din Facebook sunt cele mai importante pentru noi. (Să sperăm prietenii noștri să nu afle care Facebook crede că ne plac cel mai mult!)

Dar gândirea algoritmică ne poate ajuta mult dincolo de viața calculatorului. Ne poate ajuta chiar să construim un sandwich mai bun.

Să spunem că încep cu două felii de pâine, răspândind muștar pe o felie și maioneză pe altă felie. Am pus o felie de brânză pe pâine cu maioneză, o șuncă deasupra, o salată verde, două felii de roșii și apoi o punem cu acea felie cu muștar pe ea. Bun sandwich, nu?

Categoric dacă mănânc imediat. Dar dacă l-aș lăsa pe masă pentru o vreme, acea felie de pâine ar putea să devină umedă de la înmuierea unei roșii. Este o problemă pe care nu am anticipat-o și aș putea să fac sandwich-uri de ani de zile înainte de a observa, dar odată ce o fac, pot să încep să mă gândesc la modalități de a-mi schimba algoritmul pentru a construi un sandwich mai bun.

De exemplu, aș putea scăpa de tomate. Dar nu vreau să-mi pierd gustul de roșii. Deci, în loc, pot pune roșiile pe sandwich după pâine și salată. Acest lucru permite ca salata să formeze o barieră de protecție între roșii și pâine.

Acesta este modul în care un algoritm evoluează. Și un algoritm nu trebuie să fie condus de un calculator pentru a fi un algoritm. Un algoritm este un proces, iar procesele sunt în jurul nostru.