Kaj je algoritem?

Odkrijte, kako vodijo algoritmi po svetu

Algoritem je niz navodil. Opredelitev je res tako preprosta. Algoritem je lahko tako preprost kot dajanje navodil, kot je ta:

  1. Pojdi po ulici
  2. Pojdi prvi desno
  3. Poiščite drugo hišo na levi
  4. Knock na vratih in
  5. Dostavite paket.

Ampak medtem ko je definicija algoritma preprosta, je lahko dejanski pomen in vpliv na naše življenje precej zapleten.

Primer algoritma

Splošen primer algoritma, ki ga uporabljamo v vsakdanjem življenju, je recept. Ta niz navodil nam daje vse sestavine, ki jih bomo potrebovali, in navodila o tem, kaj storiti s temi sestavinami. Sliši se preprosto, kajne?

Kaj pa, če ne veste, kje je merilna skodelica? Potrebovali boste algoritem, da bi ga našli. Morda celo potrebujete algoritem za uporabo merilne skodelice.

Torej, medtem ko je algoritem nabor navodil, mora upoštevati tudi, kdo ali kaj bo razlagal ta navodila. Na primer, če dajete navodila prijatelju, ki podrobno opisuje, kako priti iz vaše hiše v najbližjo trgovino z živili, bo vaš prijatelj vedel, kako priti v to trgovino, če vedo, kje je vaša hiša. Niso sposobni (še) najti to posebno trgovino s hišo drugega prijatelja.

Tako je lahko preprost in kompleksen algoritem. Ko govorimo o računalniških algoritmih, razumevanje, kaj je računalnik sposoben narediti, je temeljni del oblikovanja algoritmov.

Kako se razvijajo algoritmi za razvrščanje

Eden od prvih ustvarjenih algoritmov je bila rutina. Razvrščanje Bubble je metoda za razvrščanje številk, črk ali besed z zankanjem preko nabora podatkov, primerjanjem vsakega nabora vrednosti drug ob drugem in zamenjanjem po potrebi.

Ta zanka se ponovi, dokler se algoritem ne premakne po celotnem seznamu, ne da bi bilo treba zamenjati ničesar, kar pomeni, da so vrednosti pravilno razvrščene. Ta vrsta algoritma se pogosto imenuje rekurzivni algoritem, ker se z njo vedno znova in znova dokler ne opravi naloge.

Algoritem je lahko tako preprost kot:

  1. Pojdite na prvo vrednost.
  2. Preverite to vrednost glede na naslednjo vrednost in zamenjate, če je potrebno
  3. Pojdite na naslednjo vrednost in ponovite primerjavo.
  4. Če smo na koncu seznama, se vrnite na vrh, če je bila med zanko zamenjana katera koli vrednost.

Ampak mehurček se ni izkazal za najbolj učinkovit način razvrščanja vrednosti. Ko je čas trajal in računalniki so postali bolj sposobni zapletene naloge hitro, so se pojavili novi algoritmi za razvrščanje.

Eden takšnih algoritmov skenira prvi seznam in ustvari drugi seznam razvrščenih vrednosti. Ta metoda naredi samo en prehod skozi prvotni seznam, z vsako vrednostjo pa se zoži prek drugega seznama, dokler ne najde pravilnega kraja, kamor naj se doda vrednost. Ponavadi je bolj učinkovita kot uporaba metode razvrščanja mehurčkov.

To je, če lahko algoritmi postanejo res nori. Ali pa je zelo zanimivo, odvisno od tega, kako ga gledaš.

Medtem ko se metoda razvrščanja mehurčkov šteje za enega najbolj neučinkovitih metod za razvrščanje vrednosti na več načinov, če je izvirni seznam pravilno preoblikovan, je lahko vrsta mehurčkov ena od najučinkovitejših. To je zato, ker bo v tem primeru algoritem sortiranja mehurčkov enkrat prešel na seznam in ugotovil, da je pravilno razvrščen.

Na žalost ne vemo vedno, ali je naš seznam preoblikovan, zato moramo izbrati algoritem, ki bo najučinkovitejši za uporabo na številnih seznamih.

Kaj se učimo iz vrste Bubble Sort

Facebook Algoritmi in še več v vsakdanjem življenju

Algoritmi pomagajo ljudem vsak dan. Pri iskanju po spletu je algoritem pri iskanju najboljših rezultatov iskanja. Vprašajte svoj pametni telefon za navodila in algoritem odloči za najboljšo pot za vas. Ko brskate po spletu, se odloči, kateri od naših prijateljevih objav v Facebooku so za nas najpomembnejši. (Upajmo, da naši prijatelji ne bodo ugotovili, katera Facebook misli, da smo najbolj všeč!)

Ampak razmišljanje algoritmično nam lahko pomaga daleč preko našega življenja v računalniku. Lahko nam celo pomaga zgraditi boljši sendvič.

Recimo, da začnem z dvema krušnima kruhoma, na eni rezini in majonezi na drugi rezini. Na kruh sem položil koščico s majonezo, nekaj pršut na vrhu, nekaj zelene solate, dve koščki paradižnika, nato pa ga pokrijte z rezino z gorčico na njej. Dober sendvič, kajne?

Vsekakor, če bom takoj pojedel. Ampak, če ga nekaj časa pustim na mizi, se lahko zgornji del kruha zajebi nekaj od tega paradižnika. To je problem, ki ga nisem čisto predvideval, in morda bom naredil sendviče že pred leti, toda ko enkrat počnem, lahko začnem razmišljati o načinih, kako spremeniti svoj algoritem, da bi ustvaril boljši sendvič.

Na primer, sem se lahko znebil paradižnika. Toda ne želim izgubiti okusa paradižnika. Namesto tega lahko paradižnik prenesem na sendvič po kruhu in zeleni solati. To omogoča, da zelena solata tvori zaščitno pregrado med paradižnikom in kruhom.

Tako se razvija algoritem. In algoritem ni potrebno, da bi ga računalnik uporabljal kot algoritem. Algoritem je proces, vsi procesi pa so okrog nas.