Што такое алгарытм?

Даведайцеся, як алгарытмы кіруюць светам

Алгарытм ўяўляе сабой набор інструкцый. Вызначэнне сапраўды проста. Алгарытм можа быць гэтак жа лёгка, як даваць ўказанні, як гэта:

  1. Спусьцецеся ўніз па вуліцы
  2. Вазьміце першае права
  3. Знайдзіце другі дом злева
  4. Грук у дзверы і
  5. Даставіць пакет.

Але ў той час як вызначэнне алгарытму проста, фактычнае значэнне і як яна ўплывае на наша жыццё можа быць даволі складанай.

прыклад алгарытму

Тыповы прыклад алгарытму, які мы выкарыстоўваем у нашай паўсядзённым жыцці з'яўляецца рэцэптам. Гэты набор інструкцый дае ўсе інгрэдыенты нам спатрэбяцца і кірунак нам пра тое, што рабіць з гэтымі інгрэдыентамі. Гучыць проста, ці не так?

Але што, калі вы не ведаеце, дзе вымяральная кубак трымаецца? Вы павінны былі б алгарытм, каб знайсці яго. Вы можаце нават патрэбен алгарытм, як выкарыстоўваць мерны шкляначку.

Такім чынам, у той час як алгарытм ўяўляе сабой набор інструкцый, таксама неабходна прымаць да ўвагі, хто або што будзе інтэрпрэтаваць гэтыя інструкцыі. Напрыклад, калі вы даваць ўказанні сябру дэталізацыі, як дабрацца ад вашага дома да бліжэйшага прадуктовага магазіна, ваш сябар будзе толькі ведаць, як патрапіць у гэтую краму, калі яны ведаюць, дзе ваш дом знаходзіцца. Яны не здольны (пакуль) знайсці гэты канкрэтны крама харчовых тавараў ад скажу, дома іншага аднаго.

Гэта як алгарытм можа быць простым і складаным. І калі мы гаворым з пункту гледжання кампутарных алгарытмаў, разуменне таго, што кампутар здольны рабіць гэта фундаментальная частка фармулявання алгарытмаў.

Як алгарытмы сартавання Evolved

Адзін з самых ранніх алгарытмаў, створаных быў руцінны пузырьковый сартавання. Bubble роду з'яўляецца метад для сартавання лікаў, літар ці слоў, прабягаем па наборы дадзеных, параўноўваючы кожны набор значэнняў бок аб бок, і замена іх пры неабходнасці.

Гэты цыкл паўтараецца да таго часу, алгарытм не можа перамяшчацца па ўсім спісе без неабходнасці змяняць што-небудзь, што азначае, што значэнні сартуюцца правільна. Гэты тып алгарытму часта згадваецца як рэкурсіўны алгарытм, таму што завесы на сябе зноў і зноў, пакуль ён не выканае заданне.

Алгарытм можа выглядаць так жа проста, як:

  1. Перайсці да першага значэнні.
  2. Пераканайцеся, што значэнне ў адносінах да наступнага значэнні і пазіцыю свопу пры неабходнасці
  3. Пераход да наступнага значэнні і паўторыце параўнанне.
  4. Калі мы знаходзімся ў канцы спісу, вярніцеся да вяршыні, калі якому-небудзь значэнне было абменена на працягу цыклу.

Але пузырьковый сартаванне не апынуцца найбольш эфектыўным спосабам сартавання значэнняў. Ішоў час, і кампутары сталі больш здольныя рабіць складаныя задачы хутка, новыя алгарытмы сартавання выскачылі.

Адзін такі алгарытм скануе праз першы спіс і стварае другі спіс адсартаваных значэнняў. Гэты метад робіць толькі адзін праход праз зыходны спіс, і з кожным значэннем, гэта будзе цыкл па другім спісе, пакуль ён знойдзе правільнае месца, каб змясціць значэнне. Як правіла, гэта больш эфектыўна, чым пры выкарыстанні метаду пузырьковый сартавання.

Гэта дзе алгарытмы могуць атрымаць сапраўды вар'ят. Ці сапраўды цікава, у залежнасці ад таго, як вы глядзіце на яго.

У той час як метад пузырьковый сартавання лічыцца адным з самых неэфектыўных метадаў сартавання значэнняў у многіх адносінах, калі зыходны спіс адсартаваны правільна, пузырьковый сартаванне можа быць адзін з самых эфектыўных. Гэта таму, што ў гэтым выпадку, алгарытм пузырьковый сартавання будзе праходзіць праз спіс адзін раз, і вызначыць яго правільна адсартаваны.

На жаль, мы не заўсёды ведаем, калі наш спіс адсартаваны, таму мы павінны выбраць алгарытм, які збіраецца быць найбольш эфектыўныя выкарыстоўваць у сярэднім у вялікай колькасці спісаў.

Што мы даведаемся з Bubble Sort

Facebook Алгарытмы і многія іншыя ў паўсядзённым жыцці

Алгарытмы на працы дапамагаюць людзям кожны дзень. Пры пошуку ў Інтэрнэце, алгарытм на працы, спрабуючы знайсці лепшыя вынікі пошуку. Задайце свой смартфон для напрамкаў, і алгарытм вызначае найлепшы маршрут для вас прыняць. І калі вы праглядаеце Facebook, алгарытм вырашае, якія з паведамленняў нашага сябра Facebook з'яўляюцца найбольш важнымі для нас. (Будзем спадзявацца, што нашы сябры не даведацца, які з іх Facebook лічыць, што мы больш за ўсё падабаецца!)

Але думаць алгарытмічная можа дапамагчы нам далёка за межамі нашай кампутарнай жыцця. Ён нават можа дапамагчы нам пабудаваць лепшы бутэрброд.

Скажам, я пачынаю з двума лустачкамі хлеба, распаўсюджваючы гарчыцу на адзін лустачка і маянэзе на іншы зрэз. Я паклаў кавалачак сыру на хлебе з маянэзам, вяндлінай на вяршыні гэтага, некаторы салата, два лустачкі памідора, а затым давяршэнне з гэтым кавалачкам з гарчыцай на яго. Добры бутэрброд, ці не так?

Вызначана, калі я ем яго адразу ж. Але калі б я пакінуў яго на стале на некаторы час, што верхні лустачку хлеба можа атрымаць сырым ад убіраючы некаторыя з гэтых памідораў. Гэта праблема, якую я не зусім прадбачыць, і я мог бы зрабіць бутэрброды на працягу многіх гадоў, перш чым заўважаць, але калі я раблю, я магу пачаць думаць пра спосабы змяніць свой алгарытм, каб пабудаваць лепшы бутэрброд.

Напрыклад, я мог бы пазбавіцца ад тамата. Але я не хачу страціць гэты таматавы густ. Таму замест таго, я магу пакласці памідор на бутэрброд пасля хлеба і салаты. Гэта дазваляе салаты, каб сфармаваць ахоўны бар'ер паміж таматам і хлебам.

Гэта як алгарытм развіваецца. І алгарытм не павінен быць запушчаны на кампутары, каб быць алгарытм. Алгарытм ўяўляе сабой працэс, і працэсы, усё вакол нас.