Co je to algoritmus?

Objevte, jak algoritmy běží na světě

Algoritmus je sada instrukcí. Definice je opravdu tak jednoduchá. Algoritmus může být stejně snadný jako dávání takových instrukcí:

  1. Jděte dolu po ulici
  2. Vezměte první pravý
  3. Najděte druhý dům vlevo
  4. Klepání na dveře a
  5. Doručte balíček.

Ale zatímco definice algoritmu je jednoduchá, skutečný význam a jak ovlivňuje náš život může být poměrně složitý.

Příklad algoritmu

Společným příkladem algoritmu, který používáme v našem každodenním životě, je recept. Tento soubor pokynů nám poskytuje všechny ingredience, které budeme potřebovat, a pokyny ohledně toho, co s těmi přísadami dělat. Zní to snadně, že?

Ale co když nevíte, kde se udržuje odměrka? Budete potřebovat algoritmus, abyste ho našli. Můžete dokonce potřebovat algoritmus, jak používat odměrku.

Takže zatímco algoritmus je sada instrukcí, musí také vzít v úvahu, kdo nebo co tyto pokyny interpretuje. Například pokud dáte pokyny kamarádovi o tom, jak se dostat z vašeho domu do nejbližšího obchodu s potravinami, bude váš přítel vědět, jak se dostat do tohoto obchodu, pokud vědí, kde se váš dům nachází. Nejsou schopni (přesto) najít ten konkrétní obchod s potravinami, jak říkat, dům jiného přítele.

Takto může být algoritmus jednoduchý a složitý. A když mluvíme z hlediska počítačových algoritmů, pochopení toho, co je počítač schopen dělat, je základní součástí formulování algoritmů.

Jak se třídí algoritmy

Jedním z nejdříve vytvořených algoritmů byla rutina třídění bublin. Třídění bublin je metoda třídění čísel, písmen nebo slov smyčkováním přes datovou sadu, porovnáním každé sady hodnot vedle sebe a jejich výměnou v případě potřeby.

Tato smyčka se opakuje, dokud se algoritmus nemůže pohybovat celým seznamem bez nutnosti výměny cokoli, což znamená, že jsou hodnoty správně seřazeny. Tento typ algoritmu je často označován jako rekurzivní algoritmus, protože se znovu a znovu opakuje, dokud dokončí úkol.

Tento algoritmus může vypadat jednoduše jako:

  1. Přejděte na první hodnotu.
  2. Zkontrolujte, zda je hodnota v porovnání s další hodnotou a zda je v případě potřeby vyměňte pozice
  3. Přejděte na další hodnotu a opakujte porovnání.
  4. Pokud se nacházíme na konci seznamu, vrátíme se zpět, pokud se během smyčky vymění nějaká hodnota.

Nicméně třídění bublin se ukázalo jako nejúčinnější způsob třídění hodnot. Jak čas pokračoval a počítače se staly schopnějšími dělat složité úkoly rychle, objevily se nové třídící algoritmy.

Jeden takový algoritmus prohledává první seznam a vytvoří druhý seznam tříděných hodnot. Tato metoda provádí pouze jediný průchod skrz původní seznam a při každé hodnotě se bude procházet druhým seznamem, dokud nenajde správné místo pro vložení hodnoty. Obvykle je efektivnější než použití metody třídění bublin.

To je místo, kde algoritmy mohou být opravdu šílené. Nebo opravdu zajímavé, podle toho, jak se na to podíváte.

Zatímco metoda třídění bublin je považována za jednu z nejúčinnějších metod třídění hodnot mnoha způsoby, pokud je původní seznam správně přednastavený, třídění bublin může být jedním z nejúčinnějších. To proto, že v tomto případě algoritmus třídění bublin projde seznamem jednou a určí, že je správně seřazen.

Bohužel nevíme vždy, jestli je náš seznam předem určen, takže musíme zvolit algoritmus, který bude nejúčinnější používat v průměru na velkém počtu seznamů.

Co se dozvídáme z třídění bublin

Facebook Algoritmy a další v každodenním životě

Algoritmy jsou v práci a pomáhají lidem každý den. Při hledání na webu se snaží algoritmus najít nejlepší výsledky vyhledávání. Zeptejte se svého smartphonu na pokyny a algoritmus rozhodne o nejlepší cestě, kterou byste měli vzít. A když procházíte na Facebooku, rozhoduje algoritmus, který z našich příspěvků na Facebooku je pro nás nejdůležitější. (Doufejme, že naši přátelé nezjistí, který z nich si Facebook myslí, že se nám nejvíce líbí!)

Ale myšlení algoritmicky nám může pomoci mnohem víc než náš počítačový život. Může nám dokonce pomoci vybudovat lepší sendvič.

Řekněme, že začínám dvěma plátky chleba, na jedné plátce hořčíku a na jiném plátku majonézu. Na chleba jsem položil plátek sýra s majonézou, nějakou šunku nahoře, pár hlávkového salátu, dvě plátky rajčat a pak ho zakrýt s plátkem s hořčicí na něm. Dobrý sendvič, ne?

Jistě jestliže to jdu hned. Ale kdybych na chvíli nechal na stole, ten horní kus chleba by mohl být mokrý, protože by si mohl namáčet některé z těch rajčat. Jednalo se o problém, který jsem si příliš nepředpokládal, a před mnoha lety si mohu udělat sendviče, ale jakmile to udělám, mohu začít myslet na způsoby, jak změnit svůj algoritmus, abych vytvořil lepší sendvič.

Například bych se mohl zbavit rajčat. Ale já nechci ztratit tu rajčatovou chuť. Takže místo toho mohu dát rajčata na sendvič po chlebu a salátu. To umožňuje, aby salát vytvořil ochrannou bariéru mezi rajčaty a chlebem.

Takto se algoritmus vyvíjí. A algoritmus nemusí být spuštěn počítačem jako algoritmus. Algoritmus je proces a procesy jsou všude kolem nás.