Што е алгоритам?

Дознајте како алгоритмите го водат светот

Алгоритам е збир на инструкции. Дефиницијата е навистина толку едноставна. Алгоритмот може да биде толку лесно како да дава инструкции како што се:

  1. Оди по улицата
  2. Преземете прво право
  3. Најдете ја втората куќа од лево
  4. Чукајте на вратата и
  5. Избави го пакетот.

Но, додека дефиницијата на алгоритам е едноставна, вистинското значење и како влијае врз нашите животи може да биде доста сложен.

Пример за алгоритам

Чест пример на алгоритам кој го користиме во нашиот секојдневен живот е рецепт. Овој сет на инструкции ни дава сите состојки што ќе ни требаат и насоки за тоа што да правиме со тие состојки. Звучи лесно, нели?

Но, што ако не знаете каде се чува мерната чаша? Ќе треба алгоритам за да го најдете. Може дури и да ви треба алгоритам за тоа како да користите мерна чаша.

Значи, додека алгоритам е збир на инструкции, исто така треба да се земе предвид кој или што ќе ги интерпретира овие упатства. На пример, ако им дадете упатства на некој пријател кој ќе ви даде детали од тоа како да стигнете од вашата куќа до најблиската продавница за храна, вашиот пријател само ќе знае како да стигне до таа продавница ако знаат каде се наоѓа вашата куќа. Тие не се способни (сеуште) за наоѓање на одредена продавница за храна од велат дека куќата на друг пријател.

Ова е како еден алгоритам може да биде едноставен и комплексен. И кога зборуваме во смисла на компјутерски алгоритми, разбирањето на тоа што е способен компјутерот е фундаментален дел од формулирањето на алгоритми.

Како еволуирале алгоритмите за сортирање

Еден од најраните создадени алгоритми беше рутината на балонот. Сортирањето на меур е метод за сортирање броеви, букви или зборови со циркулирање низ множество на податоци, споредувајќи го секој збир на вредности рамо до рамо и менувајќи ги кога е потребно.

Оваа јамка се повторува додека алгоритмот не може да се движи низ целата листа, без потреба да се менува ништо, што значи дека вредностите се правилно сортирани. Овој тип на алгоритам често се нарекува рекурзивен алгоритам, бидејќи тој циклус на себе одново и одново се додека не ја заврши задачата.

Алгоритмот може да изгледа едноставно како:

  1. Оди до првата вредност.
  2. Проверете ја таа вредност во однос на следната вредност и позициите за размена ако е потребно
  3. Одете до следната вредност и повторете ја споредбата.
  4. Ако сме на крајот на листата, врати се назад на врвот ако било која вредност беше заменета за време на јамка.

Но, вид на меур не се покажа како најефикасен начин за сортирање на вредности. Со текот на времето и компјутерите станаа поспособни да прават сложени задачи брзо, се појавиа нови алгоритми за сортирање.

Еден таков алгоритам скенира низ првата листа и создава втора листа на сортирани вредности. Овој метод прави единствен помине низ оригиналната листа, а со секоја вредност, ќе се врти низ втората листа се додека не најде точни места за да ја стави вредноста. Обично, тоа е поефикасно од користење на методот за сортирање на меурчиња.

Ова е местото каде што алгоритмите може да се навистина луди. Или навистина интересно, во зависност од тоа како го гледате.

Додека методот на сортирање на меурчиња се смета за еден од најнеефикасните методи за сортирање на многу начини, ако оригиналната листа е соодветно претставена, меурскиот вид може да биде еден од најефикасните. Тоа е затоа што, во тој случај, алгоритмот за сортирање на балонот ќе помине низ листата еднократно и ќе утврди дека е правилно подреден.

За жал, не секогаш знаеме дали нашата листа е преформулирана, така што треба да избереме алгоритам кој ќе биде најефикасен за користење во голем број листи.

Што учиме од меурчиња

Фејсбук алгоритми и повеќе во секојдневниот живот

Алгоритмите работат на помагање на луѓето секој ден. Кога пребарувате на интернет, алгоритам е на работа, обидувајќи се да ги најде најдобрите резултати од пребарувањето. Прашајте го вашиот паметен телефон за насоки, а алгоритам одлучува за најдобрата рута за вас. И кога ќе ја разгледате Фејсбук, алгоритам одлучува кој од нашите пријатели на Facebook е најважен за нас. (Да се ​​надеваме дека нашите пријатели не дознаваат кој Фејсбук мисли дека ни се допаѓа најмногу!)

Но, размислувањето алгоритамски може да ни помогне подалеку од животот на нашите компјутери. Може дури и да ни помогне да изградиме подобар сендвич.

Да речеме, јас почнувам со два парчиња леб, се шири сенф на една парче и мајонез на друг парче. На лебот со мајонез ставив парче сирење, малку шунка, марула, две парчиња домати, а потоа со тоа парче со сос од сенф. Добар сендвич, нели?

Дефинитивно ако го јадам веднаш. Но, ако го оставам на маса за некое време, тој главен парче леб може да се разниша од впивање на дел од тој домат. Тоа е проблем што не сум очекувал, и јас би можел да направам сендвичи со години пред да забележам, но штом ќе направам, можам да почнам да размислувам за начини за промена на мојот алгоритам со цел да изградам подобар сендвич.

На пример, можев да се ослободам од доматот. Но, не сакам да го изгубам вкусот на доматот. Така наместо тоа, можам да го ставам доматот на сендвичот по лебот и зелената салата. Ова овозможува зелената салата да формира заштитна бариера помеѓу доматот и лебот.

Еве како се развива алгоритам. И алгоритам не мора да биде управуван од компјутер за да биде алгоритам. Алгоритам е процес, и процесите се околу нас.