Šta je algoritam?

Otkrijte kako algoritmi pokreću svet

Algoritam je skup instrukcija. Definicija je stvarno tako jednostavna. Algoritam može biti jednostavan kao davanje ovakvih uputstava:

  1. Idi niz ulicu
  2. Uzmi prvo desno
  3. Nađite drugu kuću s lijeve strane
  4. Kucaj na vrata i
  5. Isporučite paket.

Ali dok je definicija algoritma jednostavna, stvarno značenje i način na koji utiče na naš život može biti prilično složen.

Primjer algoritma

Česti primer algoritma koji koristimo u svakodnevnom životu je recept. Ovaj set instrukcija nam daje sve sastojke koje će nam trebati i uputstva o tome šta da radite sa tim sastojcima. Zvuči lako, zar ne?

Ali šta ako ne znate gde se drži merni čašak? Trebao bi vam algoritam da ga pronađete. Možda vam je i potreban algoritam kako se koristi mjerna čaša.

Dakle, dok je algoritam skup instrukcija, takođe mora uzeti u obzir ko ili šta će tumačiti ta uputstva. Na primjer, ako dajte uputstva prijateljima koji detaljno navode kako doći od kuće do najbliže prodavnice, vaš prijatelj će znati samo kako doći do te trgovine ako znaju gdje se nalazi vaša kuća. Oni nisu u stanju (još) da pronađu tu određenu prodavnicu hrane od reči, kuću drugog prijatelja.

Evo kako algoritam može biti jednostavan i složen. Kada govorimo o kompjuterskim algoritmima, razumevanje onoga što računar može da uradi je osnovni deo formulisanja algoritama.

Kako su algoritmi sortiranja razvijeni

Jedan od najranijih kreiranih algoritama bio je rutina. Bubble sort je metod za sortiranje brojeva, slova ili reči pomoću petlje kroz skup podataka, upoređujući svaki set vrednosti jedan pored drugog i njihovo zamenjivanje kada je potrebno.

Ova petlja se ponavlja dok se algoritam ne pomeri kroz celu listu, bez potrebe za promjenom bilo čega, što znači da su vrijednosti ispravno sortirane. Ovakav algoritam se često naziva rekurzivnim algoritmom, jer se ponavlja sve dok se ne završi zadatak.

Algoritam može izgledati jednostavno kao:

  1. Idite na prvu vrednost.
  2. Provjerite tu vrijednost prema sljedećoj vrijednosti i zamijenite pozicije ako je potrebno
  3. Idite na sledeću vrednost i ponovite poređenje.
  4. Ako smo na kraju liste, vratite se na vrh ako je bilo koja vrijednost zamijenjena tokom petlje.

Međutim, bubble nije bio najefikasniji način sortiranja vrijednosti. Kako se vrijeme nastavilo i računari su postali sposobniji za obavljanje složenih zadataka brzo su se pojavili novi algoritmi sortiranja.

Jedan takav algoritam skenira kroz prvu listu i kreira drugu listu sređenih vrednosti. Ovaj metod vrši samo jedan prolaz kroz prvobitnu listu, a uz svaku vrijednost će se provući kroz drugu listu dok ne pronađe ispravno mjesto za postavljanje vrijednosti. Obično je efikasnije nego korištenje metoda sortiranja balona.

Ovde algoritmi mogu postati stvarno ludi. Ili stvarno zanimljiv, zavisno od toga kako ga gledate.

Iako se metoda sortiranja balona smatra na jednoj od najneefikasnijih metoda sortiranja vrednosti na mnogo načina, ako je originalna lista ispravno preformirana, sorta balona može biti jedna od najefikasnijih. To je zato što će u tom slučaju algoritam sortiranja balona proći kroz listu jednom i odrediti da je ispravno sortiran.

Nažalost, ne znamo uvek da li je naša lista preformirana, pa moramo odabrati algoritam koji će biti najefikasniji za korištenje u većem broju listića.

Šta naučimo iz bubble sorte

Facebook algoritmi i više u svakodnevnom životu

Algoritmi su na poslu koji pomažu ljudima svakog dana. Kada pretražujete Veb, algoritam je na poslu pokušavajući pronaći najbolje rezultate pretrage. Pitajte svoj pametni telefon za uputstva, a algoritam odlučuje o najboljem putu za vas. A kada pretražujete Facebook, algoritam odlučuje koji su naši prijatelji Facebook-a najvažniji za nas. (Nadajmo se da naši prijatelji ne saznaju koji Fejsbuk misli da nam se najviše sviđa!)

Ali algoritamski pomisao može nam pomoći daleko izvan života računara. Može nam pomoći da napravimo i bolji sendvič.

Recimo da počinjem sa dve rezine hljeba, špricanjem senfa na jednoj parčići i majonezu na drugom delu. Stavio sam parče sira na hljeb sa majonezom, malo šunke na vrhu, malo zelene salate, dva paradajza paradajza, a zatim ga s tom rezom poklopiti s senfom na njoj. Dobar sendvič, zar ne?

Definitivno ako je odmah jedem. Ali, ako ga ostavim na stolu neko vreme, taj gornji deo kruha može biti gnjusan od usijanja nekog od paradajza. To je problem koji nisam sasvim predvidio, a ja bih mogao napraviti sendviče godinama pre nego što zapamtim, ali jednom kada počnem, mogu početi razmišljati o načinima promjene mog algoritma kako bih izgradio bolji sendvič.

Na primer, mogao bih se osloboditi paradajza. Ali ne želim da izgubim taj ukus paradajza. Umjesto toga, mogu da stavim paradajz na sendvič nakon hleba i zelene salate. Ovo omogućava da zelena salata formira zaštitnu prepreku između paradajza i hleba.

Ovako se razvija algoritam. A algoritam ne mora računar upravljati algoritmom. Algoritam je proces, a procesi su oko nas.