Какво представлява алгоритъмът?

Открийте как алгоритмите работят по света

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

  1. Слез по улицата
  2. Вземете първото право
  3. Намерете втората къща вляво
  4. Почукай на вратата и
  5. Подайте пакета.

Но докато определението на алгоритъма е проста, действителният смисъл и начинът, по който той влияе върху нашия живот, може да бъде доста сложен.

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

Общ пример за алгоритъм, който използваме в нашето ежедневие, е рецепта. Този набор от инструкции ни дава всички съставки, от които се нуждаем, и насоки за това какво да правим с тези съставки. Звучи лесно, нали?

Но какво ще стане, ако не знаете къде се пази мерителната чаша? Ще ви е необходим алгоритъм, за да го намерите. Може дори да се нуждаете от алгоритъм за това как да използвате мерителна чаша.

Така че докато алгоритъмът е набор от инструкции, той също трябва да вземе предвид кой или какво ще тълкува тези указания. Например, ако давате указания на приятел, който подробно описва как да стигнете от дома си до най-близкия хранителен магазин, вашият приятел ще знае само как да стигне до магазина, ако знае къде се намира къщата ви. Те не са способни (все още) да открият, че конкретен магазин за хранителни стоки може да каже, къща на друга приятелка.

Ето как един алгоритъм може да бъде както прост, така и сложен. И когато говорим по отношение на компютърни алгоритми, разбирането на това какво е способен да направи един компютър е основна част от формулирането на алгоритми.

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

Един от най-ранните алгоритми, създадени, е рутинното сортиране на балона. Сортирането на балончета е метод за сортиране на числа, букви или думи чрез прелистване чрез набор от данни, сравняване на всеки набор от стойности една до друга и смяната им при необходимост.

Този цикъл се повтаря, докато алгоритъмът не може да се движи в целия списък, без да се налага да се заменя нищо, което означава, че стойностите са сортирани правилно. Този тип алгоритъм често се нарича рекурсивен алгоритъм, тъй като той се връща на себе си отново и отново, докато завърши задачата.

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

  1. Преминете към първата стойност.
  2. Проверете стойността спрямо следващата стойност и позициите за суап, ако е необходимо
  3. Преминете към следващата стойност и повторете сравнението.
  4. Ако сме в края на списъка, върнете се нагоре, ако някоя стойност е била сменена по време на цикъла.

Но сортирането на балона не се оказа най- ефективният начин за сортиране на ценностите. С течение на времето и компютрите станаха по-способни да изпълняват сложни задачи бързо, се появиха нови алгоритми за сортиране.

Един такъв алгоритъм сканира през първия списък и създава втори списък със сортирани стойности. Този метод прави само един пропуск през оригиналния списък и при всяка стойност той ще претърси втория списък, докато не намери правилното място за задаване на стойността. Обикновено това е по-ефективно от използването на метода за сортиране на балончета.

Това е мястото, където алгоритмите могат да станат наистина луди. Или наистина интересно, в зависимост от това как го гледате.

Докато методът за сортиране на мехурчета се счита за един от най-неефективните методи за сортиране на стойностите по много начини, ако оригиналният списък е правилно пресортиран, сортирането на балончета може да бъде един от най - ефективните. Това е така, защото в този случай алгоритъмът за сортиране на балончета ще премине през списъка само веднъж и ще определи, че е правилно сортиран.

За съжаление, ние не винаги знаем дали нашият списък е преформулиран, така че трябва да изберем алгоритъм, който ще бъде най-ефективният за използване средно по голям брой списъци.

Какво научаваме от сортиране на балони

Facebook алгоритми и повече в ежедневието

Алгоритмите работят помагайки на хората всеки ден. Когато търсите в мрежата, алгоритъмът работи, като се опитва да намери най-добрите резултати от търсенето. Посъветвайте се със смартфона си с упътвания и алгоритъмът определя най-добрия маршрут, който да предприемете. И когато разглеждате Facebook, алгоритъмът решава кои от публикациите на нашия приятел във Facebook са най-важни за нас. (Да се ​​надяваме, че нашите приятели не разбират кой Facebook мисли, че ни харесва най-много!)

Но мисленето алгоритмично може да ни помогне далеч отвъд нашия компютърен живот. Може дори да ни помогне да изградим по-добър сандвич.

Да речем, че започвам с две филийки хляб, разпръсквам горчица върху един парче и майонеза на друг парче. Слагам парче сирене върху хляба с майонеза, някаква шунка на върха, няколко салати, две филийки домати и след това го запушете с този парче с горчица върху него. Добър сандвич, нали?

Определено ако го изям веднага. Но ако го оставя на масата за известно време, тази горна част от хляба може да се накара да погълне някои от този домат. Това е проблем, който не съм очаквал съвсем, и можех да правя сандвичи от години, преди да забележа, но щом го направя, мога да започна да мисля за начини да променя алгоритъма си, за да изградя по-добър сандвич.

Например, мога да се отърва от доматите. Но не искам да губя вкуса на доматите. Така че вместо това мога да сложа доматите на сандвича след хляба и марулята. Това позволява на марулята да образува защитна бариера между доматите и хляба.

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