Čo je to algoritmus?

Objavte, ako algoritmy riadia svet

Algoritmus je súbor inštrukcií. Definícia je naozaj tak jednoduchá. Algoritmus môže byť rovnako jednoduchý ako dávať takéto pokyny:

  1. Choďte po ulici
  2. Vezmite prvé právo
  3. Nájdite druhý dom vľavo
  4. Klepnite na dvere a
  5. Doručte balík.

Ale zatiaľ čo definícia algoritmu je jednoduchá, skutočný význam a ako ovplyvňuje náš život môže byť dosť zložitý.

Príklad algoritmu

Bežný príklad algoritmu, ktorý používame v každodennom živote, je recept. Tento súbor pokynov nám dáva všetky zložky, ktoré budeme potrebovať, a pokyny o tom, čo robiť s týmito zložkami. Znie to jednoducho, že?

Ale čo keď neviete, kde sa udržiava odmerka? Potreboval by si nájsť algoritmus. Môžete dokonca potrebovať algoritmus, ako používať odmerku.

Takže zatiaľ čo algoritmus je súbor inštrukcií, musí tiež brať do úvahy, kto alebo čo bude interpretovať tieto pokyny. Napríklad, ak dáte pokyny priateľovi s podrobnosťami o tom, ako sa dostať z vášho domu do najbližšieho obchodu s potravinami, bude váš priateľ vedieť, ako sa dostať do tohto obchodu, ak vie, kde sa nachádza váš dom. Nie sú schopní (zatiaľ) nájsť ten konkrétny obchod s potravinami, ako povedať, iný priateľský dom.

Takto môže byť algoritmus jednoduchý a komplexný. A keď hovoríme o počítačových algoritmoch, pochopenie toho, čo je počítač schopný robiť, je základnou súčasťou formulovania algoritmov.

Ako sa rozvinuli triediace algoritmy

Jeden z najskorších algoritmov bol rutinný zber bublín. Triedenie bublín je metóda na triedenie čísel, písmen alebo slov pomocou slučiek cez dátovú sadu, porovnávanie každej sady hodnôt vedľa seba a ich výmena v prípade potreby.

Táto smyčka sa opakuje dovtedy, kým sa algoritmus nemôže presunúť celý zoznam bez toho, aby musel vymieňať čokoľvek, čo znamená, že sú hodnoty správne zoradené. Tento typ algoritmu sa často označuje ako rekurzívny algoritmus, pretože sa opakuje po sebe a znovu, až kým nedokončí úlohu.

Algoritmus môže vyzerať tak jednoducho ako:

  1. Prejdite na prvú hodnotu.
  2. Skontrolujte, či je hodnota v porovnaní s ďalšou hodnotou a pozícia swapu v prípade potreby
  3. Prejdite na ďalšiu hodnotu a zopakujte porovnanie.
  4. Ak sa nachádzame na konci zoznamu, vráťte sa hore, ak sa počas cyklu zmení niektorá hodnota.

Ale triedenie bublín sa ukázalo ako najúčinnejší spôsob triedenia hodnôt. Ako čas plynul a počítače sa stali schopnejšími robiť komplexné úlohy rýchlo, objavili sa nové triediace algoritmy.

Jeden taký algoritmus skenuje prvý zoznam a vytvorí druhý zoznam triedených hodnôt. Táto metóda robí iba jediný prechod cez pôvodný zoznam a pri každej hodnote prechádza druhým zoznamom, až kým nenájde správne miesto na vloženie hodnoty. Zvyčajne je to efektívnejšie ako používanie metódy triedenia bublín.

To je miesto, kde sa algoritmy môžu naozaj zblázniť. Alebo naozaj zaujímavé, v závislosti od toho, ako sa na to pozeráš.

Zatiaľ čo metóda triedenia bublín je považovaná za jednu z najneužitočnejších metód triedenia hodnôt mnohými spôsobmi, ak je pôvodný zoznam správne preskupený, môže byť bublinové triedenie jedným z najúčinnejších. Je to preto, že v takom prípade algoritmus triedenia bublín prechádza zoznamom raz a určí, že je správne triedený.

Bohužiaľ nie vždy vieme, či je náš zoznam presredovaný, takže musíme vybrať algoritmus, ktorý bude najefektívnejší v priemere na veľkom počte zoznamov.

Čo sme sa naučili z triedenia bublín

Facebook Algoritmy a viac v každodennom živote

Algoritmy sú v práci a pomáhajú ľuďom každý deň. Keď vyhľadávate na webe, algoritmus sa snaží nájsť najlepšie výsledky vyhľadávania. Opýtajte sa svojho smartfónu na nasmerovanie a algoritmus rozhodne o najlepšej trase, ktorú by ste mali vziať. A keď prehliadate Facebook, algoritmus rozhodne, ktoré príspevky nášho priateľa na Facebooku sú pre nás najdôležitejšie. (Dúfajme, že naši priatelia nezistia, ktorý z nich si Facebook myslí, že sa nám najviac páči!)

Ale myšlienka algoritmicky nám môže pomôcť ďaleko za životom počítača. Môže nám dokonca pomôcť vybudovať lepší sendvič.

Povedzme, že začínam s dvoma plátkami chleba, roztieraním horčice na jeden plátok a majonézou na inom plátku. Na chlieb som položil plátky syra s majonézou, nejakú šunku na vrchole, pár hlávkového šalátu, dva plátky paradajok a potom ho uzavreli plátom s horčicou na ňom. Dobrý sendvič, správne?

Určite, keď ju zjedu hneď. Ale ak to na chvíľu nechám na stole, ten najlepší kúsok chleba by mohol byť mokrý, ak by sa niektoré to paradajky namáčali. Je to problém, ktorý som predvídal a pred niekoľkými rokmi som si mohol urobiť sendviče, ale akonáhle to urobím, môžem začať premýšľať o spôsoboch, ako zmeniť môj algoritmus, aby som vytvoril lepší sendvič.

Napríklad, môžem sa zbaviť paradajok. Ale nechcem stratiť túto rajčiakovú chuť. Takže namiesto toho môžem dať paradajky na sendvič po chlebe a šaláte. To umožňuje, aby šalát vytvoril ochrannú bariéru medzi paradajkami a chlebom.

Takto sa algoritmus vyvíja. A algoritmus nemusí byť spustený počítačom ako algoritmus. Algoritmus je proces a procesy sú všade okolo nás.