Алгары́тм (ад імя вучонага Аль-Харэзмі: перс.: خوارزمی [al-Khwārazmī]) — дакладны набор , якія апісваюць парадак дзеянняў выканаўца для дасягнення выніку рашэння задачы за канечны/пэўны час. У старой трактоўцы замест слова «парадак» выкарыстоўвалася слова «паслядоўнасць», але па меры развіцця паралельнасці ў рабоце камп’ютараў слова «паслядоўнасць» сталі замяняць больш агульным словам «парадак». Гэта звязана з тым, што работа нейкіх інструкцый алгарытму можа залежаць ад іншых інструкцый або вынікаў іх працы. Такім чынам, некаторыя інструкцыі павінны выконвацца строга пасля завяршэння працы інструкцый, ад якіх яны залежаць. Незалежныя інструкцыі ці інструкцыі, якія сталі незалежнымі з-за завяршэння працы інструкцый, ад якіх яны залежаць, могуць выконвацца ў адвольным парадку, паралельна або адначасова, калі гэта дазваляюць працэсар і аперацыйная сістэма.
Раней часта пісалі «алгарыфм», цяпер такое напісанне выкарыстоўваецца рэдка, але, тым не менш, мае месца (напрыклад, Нармальны алгарыфм Маркава).
Часта у якасці выканаўца выступае нейкі механізм (камп’ютар, такарны станок, швейная машына), але паняцце алгарытму неабавязкова адносіцца да камп’ютарных праграм, так, напрыклад, выразна апісаны рэцэпт прыгатавання стравы таксама з’яўляецца алгарытмам, у такім выпадку выканаўцам з'яўляецца чалавек.
Гісторыя тэрміна
Сучаснае фармальнае азначэнне алгарытму было дадзена ў 30-50-х гадах ХХ стагоддзя ў працах Цьюрынга, , Чорча (), Н. Вінера, .
Само слова алгарытм паходзіць ад імя персідскага вучонага Абу Абдулах Мухамеда ібн Муса аль-Харэзмі (алгарытм — аль-Харэзмі). Каля 825 года ён напісаў сачыненне, у якім упершыню даў апісанне прыдуманай у Індыі пазіцыйнай дзесятковай сістэмы лічэння. На жаль, персідскі арыгінал кнігі не захаваўся. Аль-Харэзмі сфармуляваў правілы вылічэння ў новай сістэме і, верагодна, упершыню выкарыстаў для абазначэння прапушчанай пазіцыі ў запісе ліку (яе індыйскую назву арабы пераклалі як as-sifr альбо проста sifr, адсюль такія словы, як «цыфра» і «шыфр»). Прыблізна ў гэты ж час індыйскія лічбы пачалі ўжываць і іншыя арабскія навукоўцы. У першай палове XII стагоддзя кніга аль-Харэзмі ў лацінскім перакладзе трапіла ў Еўропу. Перакладчык, імя якога да нас не дайшло, даў ёй назву Algoritmi de numero Indorum («Алгарытмы пра лічэнне індыйскае»). Па-арабску ж кніга называлася Кітаб аль-джэбр валь-мукабала («Кніга пра складанне і адыманне»). З арыгінальнай назвы кнігі паходзіць слова Алгебра (алгебра — аль-джэбр — складанне).
Такім чынам, мы бачым, што лацінізаванае імя сярэднеазіяцкага вучонага было вынесена ў загаловак кнігі, і сёння ні ў каго няма сумненняў, што слова «алгарытм» трапіла ў еўрапейскія мовы менавіта дзякуючы гэтаму сачыненню. Аднак пытанне пра яго сэнс доўгі час выклікала зацятыя спрэчкі. На працягу многіх стагоддзяў паходжанню слова даваліся самыя розныя тлумачэнні.
Адны выводзілі algorism з грэчаскіх algiros (хворы) і arithmos (лік). З-за такога тлумачэння не вельмі зразумела, чаму лікі менавіта «хворыя». Ці лінгвістам хворымі здаваліся людзі, якія маюць няшчасце займацца вылічэннямі? Сваё тлумачэнне прапанаваў і энцыклапедычны слоўнік Бракгаўза і Эфрона. У ім алгарыфм (дарэчы, да рэвалюцыі ў Расійская імперыі выкарыстоўвалася напісанне алгориθм, праз фіту) выводзіцца «ад арабскага слова Аль-Гарэтм, што значыць корань». Зразумела, гэтыя тлумачэнні наўрад ці можна лічыць пераканаўчымі.
Згаданы вышэй пераклад сачынення аль-Харэзмі стаў першай ластаўкай, і на працягу некалькіх наступных стагоддзяў з'явілася мноства іншых прац, прысвечаных усё таму ж пытанню — навучанню мастацтву лічэння з дапамогай лічбаў. І ўсе яны ў назве мелі слова algoritmi ці algorismi.
Пра аль-Харэзмі пазнейшыя аўтары нічога не ведалі, але паколькі першы пераклад кнігі пачынаецца словамі: «Dixit algorizmi: …» («Аль-Харэзмі казаў: …»), усё яшчэ звязвалі гэтае слова з імем канкрэтнага чалавека. Вельмі распаўсюджанай была версія пра грэчаскае паходжанне кнігі. У англа-нарманскім рукапісе XIII стагоддзя, напісаным у вершах, чытаем:
"Алгарызм быў прыдуманы ў Грэцыі.
Гэта частка арыфметыцы. Прыдуманы ён быў майстрам па імi Алгарызм, які даў яму сваё імя. І паколькі яго звалі Алгарызм,
Ён назваў сваю кнігу «Алгарызм»
Каля 1250 года англійскі астраном і матэматык напісаў працу па арыфметыцы Algorismus vulgaris, што на стагоддзі стала асноўным падручнікам па вылічэннях у дзесятковай пазіцыйнай сістэме злічэння ў многіх еўрапейскіх універсітэтах. Ва ўводзінах Сакрабоска назваў аўтарам навукі пра лічэнне мудраца па імi Алгус (Algus). А ў папулярнай сярэдневяковай паэме «» (1275—1280) «грэчаскі філосаф Алгус» ставіцца ў адзін рад з Платонам, Арыстоцелем, Эўклідам і Пталамеем! Сустракаўся таксама варыянт напісання імя Аргус (Argus). І хоць, паводле старажытнагрэчаскай міфалогіі, карабель «» быў пабудаваны Ясонам, менавіта гэтаму Арго прыпісвалася будаўніцтва карабля.
«Майстар Алгус» (ці Аргус) стаў у сярэдневяковай літаратуры ўвасабленнем мастацтва лічэння. І ва ўжо згаданым «Рамане пра ружу», і ў вядомай італьянскай паэме «Кветка», напісанай Дурантэ, ёсць фрагменты, у якіх гаворыцца, што нават «mestre Argus» не здолее падлічыць, колькі разоў сварацца і мірацца закаханыя. Англійскі паэт Джэфры Чосер у паэме «» (1369 г.) піша, што нават «знаны лічыльнік Аргус» (noble countour Argu) не зможа палічыць пачвар, якія з'явіліся ў жахлівых відзежах герою.
Зрэшты, грэчаская версія была не адзінай. Міфічны Алгор (Algor) называўся то каралём Кастыліі (Rex quodam Castelliae), то , то арабскім мудрацом (philosophus Algus nomine Arabicus).
Аднак з часам такія тлумачэнні ўсё менш цікавілі матэматыкаў, і слова algorism (ці algorismus), якое нязменна прысутнічала ў назвах матэматычных сачыненняў, набыло значэнне спосабу выканання арыфметычных дзеянняў з дапамогай арабскіх лічбаў, гэта значыць на паперы, без выкарыстання абака. Менавіта ў такім значэнні яно ўвайшло ў многія еўрапейскія мовы. Напрыклад, з пазнакай «састарэлае» яно прысутнічае ў прадстаўнічым слоўніку англійскай мовы Webster's New World Dictionary, выдадзеным у 1957 годзе.
Алгарытм — гэта мастацтва лічэння з дапамогай лічбаў, але спачатку слова «лічба» адносілася толькі да нуля. Знакаміты французскі (Gautier de Coincy, 1177—1236) у адным з вершаў выкарыстоўваў слова algorismus-cipher (якія азначалі лічбу 0) як метафару для характарыстыкі абсалютна нікчэмнага чалавека. Відавочна, разуменне такога вобразу патрабавала адпаведнай падрыхтоўкі слухачоў, а гэта азначае, што новая сістэма лічэння ўжо была ім досыць добра вядомая.
Многія стагоддзі абак быў фактычна адзіным сродкам для практычных вылічэнняў, ім карысталіся і купцы, і мянялы, і навукоўцы. Добрыя якасці вылічэнняў на дошцы тлумачыў у сваіх сачыненнях такі выдатны мысліцель, як (938—1003), які стаў у 999 годзе Папам Рымскім пад імем Сільвестра II. Новае з вялікай цяжкасцю прабівала сабе дарогу, і ў гісторыю матэматыкі ўвайшло зацятае супрацьстаянне лагераў алгарысмікаў і (часам званых гербекістамі), якія прапагандавалі выкарыстанне для вылічэнняў абака замест арабскіх лічбаў. Цікава, што вядомы французскі матэматык (Nicolas Chuquet, 1445—1488) у рэестр падаткаплацельшчыкаў горада Ліёна быў упісаны як алгарысмік (algoriste). Але прайшло не адно стагоддзе, перш чым новы спосаб лічэння канчаткова зацвердзіўся, столькі часу спатрэбілася, каб выпрацаваць агульнапрызнаныя азначэнні, удасканаліць і прыстасаваць да запісу на паперы метады вылічэнняў. У Заходняй Еўропе настаўнікаў арыфметыкі ажно да XVII стагоддзя працягвалі зваць «магістрамі абака», як, напрыклад, матэматыка Нікола Тарталью (1500—1557).
Паступова значэнне слова пашыралася. Навукоўцы пачыналі ўжываць яго не толькі да выключна вылічальных, але і да іншых матэматычных працэдур. Напрыклад, каля 1360 года французскі філосаф (Nicolaus Oresme, 1323/25-1382) напісаў матэматычны трактат Algorismus proportionum («Вылічэнне прапорцый»), у якім упершыню выкарыстоўваў ступені з дробнымі паказчыкамі і фактычна ўшчыльную падышоў да ідэі лагарыфмаў. Калі ж на змену абаку прыйшло так званае лічэнне на лініях, шматлікія дапаможнікі па ім сталі называць Algorithmus linealis.
Можна звярнуць увагу на тое, што першапачатковая форма algorismi праз нейкі час страціла апошнюю літару, і слова набыло зручнейшы для еўрапейскага вымаўлення выгляд algorism. Пазней і яно, у сваю чаргу, зазанала скажэнне, хутчэй за ўсё, звязанае са словам arithmetic.
Алгарытмы станавіліся прадметам усё больш пільнай увагі вучоных, і паступова гэта паняцце заняло адно з цэнтральных месцаў у сучаснай матэматыцы. Што ж тычыцца людзей, ад матэматыкі далёкіх, то да пачатку саракавых гадоў гэта слова яны маглі пачуць хіба што ў час вучобы ў школе, у спалучэнні «алгарытм Еўкліда». Нягледзячы на гэта, алгарытм усё яшчэ ўспрымаўся як тэрмін выключна спецыяльны.
Адначасова з развіццём паняцця алгарытму паступова адбывалася і яго экспансія з чыстай матэматыкі ў іншыя сферы. І пачатак ёй паклала з'яўленне камп’ютараў, дзякуючы якому слова «алгарытм» увайшло ў 1985 годзе ва ўсе школьныя падручнікі інфарматыкі і набыло новае жыццё. Наогул можна сказаць, што яго сённяшняя вядомасць напрамую звязана са ступенню распаўсюджання камп’ютараў.
Азначэнні алгарытму
Адзінага «сапраўднага» азначэння паняцця «алгарытм» няма. «Алгарытм — гэта пэўны набор правіл, які вызначае паслядоўнасць аперацый для вырашэння канкрэтнага мноства задач і валодае пяццю важнымі рысамі: канечнасць, вызначанасць, увод, вывад, эфектыўнасць». (Д. Э. Кнут)
«Алгарытм — гэта ўсякая сістэма вылічэнняў, што выконваюцца па строга вызначаных правілах, якая пасля якой-небудзь колькасці крокаў заведама прыводзіць да вырашэння пастаўленай задачы». (А. Калмагораў)
«Алгарытм — гэта дакладнае прадпісанне, якое вызначае вылічальны працэс, які ідзе ад зыходных дадзеных, якія могуць вар'іравацца, да шуканага выніку». ()
«Алгарытм — дакладнае прадпісанне аб выкананні ў вызначаным парадку нейкай сістэмы аперацый, якія вядуць да рашэння ўсіх задач дадзенага тыпу». (Філасофскі слоўнік / Пад рэд. М. М. Разенталя)
«Алгарытм — строга дэтэрмінаваная паслядоўнасць дзеянняў, якая апісвае працэс пераўтварэння аб'екта з пачатковага стану ў канчатковы, запісаны з дапамогай зразумелых выканаўцу каманд». (, падручнік «Інфарматыка і інфарм. Тэхналогіі»)
Фармальныя ўласцівасці алгарытмаў
Розныя азначэнні алгарытму ў яўнай або няяўнай форме ўтрымліваюць наступны шэраг агульных патрабаванняў:
- Дыскрэтнасць — алгарытм павінен прадстаўляць працэс рашэння задачы як паслядоўнае выкананне нейкіх простых крокаў. Пры гэтым для выканання кожнага кроку алгарытму патрабуецца канечны адрэзак часу, гэта значыць пераўтварэнне зыходных дадзеных у вынік ажыццяўляецца ў часе дыскрэтна.
- (вызначанасць). У кожны момант часу наступны крок працы адназначна вызначаецца станам сістэмы. Такім чынам, алгарытм выдае адзін і той жа вынік (адказ) для адных і тых жа зыходных дадзеных. У сучаснай трактоўцы ў розных рэалізацый аднаго і таго ж алгарытму павінен быць ізаморфны граф. З іншага боку, існуюць імавернасныя алгарытмы, у якіх наступны крок работы залежыць ад бягучага стану сістэмы і генераванага выпадковага ліку. Аднак пры ўключэнні метаду генерацыі выпадковых лікаў у спіс «зыходных дадзеных», імавернасны алгарытм становіцца падвідам звычайнага.
- Зразумеласць — алгарытм для выканаўца павінен уключаць толькі тыя каманды, якія яму (выканаўцу) даступныя, якія ўваходзяць у яго сістэму каманд.
- Завяршальнасць (канечнасць) — пры карэктна зададзеных зыходных дадзеных алгарытм павінен завяршаць працу і выдаваць вынік за канечную колькасць крокаў. З іншага боку, імавернасны алгарытм можа і ніколі не выдаць вынік, але імавернасць гэтага роўная 0.
- Масавасць (універсальнасць). Алгарытм павінен выкарыстоўвацца і ў дачыненні да розных набораў зыходных дадзеных.
- Выніковасць — завяршэнне алгарытму пэўнымі вынікамі.
- Алгарытм змяшчае памылкі, калі прыводзіць да атрымання няправільных вынікаў або не дае вынікаў зусім.
- Алгарытм не змяшчае памылак, калі ён дае правільныя вынікі для любых дапушчальных зыходных дадзеных.
Віды алгарытмаў
Асаблівую ролю выконваюць прыкладныя алгарытмы, прызначаныя для рашэння пэўных прыкладных задач. Алгарытм лічыцца правільным, калі ён адпавядае патрабаванням задачы (напрыклад, дае фізічна праўдападобны вынік). Алгарытм (праграма) змяшчае памылкі, калі для некаторых зыходных дадзеных ён дае няправільныя вынікі, збоі, адмовы ці не дае ніякіх вынікаў наогул. Апошні тэзіс выкарыстоўваецца ў алімпіядах па алгарытмічным праграмаванні, каб ацаніць складзеныя ўдзельнікамі праграмы.
Важную ролю граюць рэкурсіўныя алгарытмы (алгарытмы, якія выклікаюць самі сябе да таго часу, пакуль не будзе дасягнута нейкая ўмова вяртання). Пачынаючы з канца XX — пачатку XXI стагоддзя актыўна распрацоўваюцца паралельныя алгарытмы, прызначаныя для вылічальных машын, здольных выконваць некалькі аперацый адначасова.
Наяўнасць зыходных дадзеных і пэўнага выніку
Алгарытм — гэта дакладна вызначаная інструкцыя, паслядоўна ўжываючы якую да зыходных дадзеных, можна атрымаць рашэнне задачы. Для кожнага алгарытму ёсць нейкае мноства аб’ектаў, дапушчальных у якасці зыходных дадзеных. Напрыклад, у алгарытме дзялення рэчаісных лікаў дзялімае можа быць любым, а дзельнік не можа быць роўны нулю.
Алгарытм служыць, як правіла, для рашэння не адной канкрэтнай задачы, а нейкага класа задач. Так, алгарытм складання выкарыстоўваецца ў дачыненні да любой пары натуральных лікаў. У гэтым выяўляецца яго ўласцівасць масавасці, гэта значыць магчымасці выкарыстоўваць многаразова адзін і той жа алгарытм для любой задачы аднаго класу.
Для распрацоўкі алгарытмаў і праграм выкарыстоўваецца алгарытмізацыя — працэс сістэматычнага складання алгарытмаў для вырашэння пастаўленых прыкладных задач. Алгарытмізацыя лічыцца абавязковым этапам у працэсе распрацоўкі праграм і рашэнні задач на ЭВМ. Менавіта для прыкладных алгарытмаў і праграм прынцыпова важныя дэтэрмінаванасць, выніковасць і масавасць, а таксама правільнасць вынікаў рашэння пастаўленых задач.
Алгарытм — гэта зразумелае і дакладнае прадпісанне, выканаць паслядоўнасць дзеянняў, накіраваных на дасягненне мэт.
Форма алгарытмаў
Алгарытм можа быць запісаны словамі і паказаны схематычна. Звычайна спачатку (на ўзроўні ідэі) алгарытм апісваецца словамі, але па меры набліжэння да рэалізацыі ён набывае ўсё больш фармальныя абрысы і фармулёўку на мове, зразумелай выканаўцу (напрыклад, машынны код). Напрыклад, для апісання алгарытму выкарыстоўваюцца блок-схемы. Іншым варыянтам апісання, незалежным ад мовы праграмавання, з'яўляецца псеўдакод.
Эфектыўнасць алгарытмаў
Хоць у азначэнні алгарытму патрэбна толькі канечнасць колькасці крокаў, неабходных для дасягнення выніку, на практыцы выкананне нават хаця б мільярда крокаў занадта павольнае. Таксама звычайна ёсць іншыя абмежаванні (на памер праграмы, на дапушчальныя дзеянні). У сувязі з гэтым уводзяць такія паняцці як складанасць алгарытма (часавая, па памеры праграмы, вылічальная і інш.)
Для кожнага запісу можа існаваць мноства алгарытмаў, што прыводзяць да мэты. Павелічэнне эфектыўнасці алгарытмаў складае адну з задач сучаснай інфарматыкі. У 50-х гг. XX стагоддзя з’явілася нават яе асобная галіна — хуткія алгарытмы. У прыватнасці, у знаёмай усім з дзяцінства задачы аб памнажэнні дзесятковых лікаў выявіўся шэраг алгарытмаў, якія дазваляюць істотна (у асімптатычным сэнсе) паскорыць знаходжанне здабытку.
Яскравым прыкладам з’яўляецца алгарытм Чудноўскага для вылічэння ліку π.
Аналіз алгарытмаў
Доказ карэктнасці
Разам з распаўсюджаннем інфармацыйных тэхналогій павялічылася рызыка праграмных збояў. Адным з спосабаў пазбегнуць памылак у алгарытмах і іх рэалізацыях з'яўляецца давядзенне карэктнасці сістэм матэматычнымі сродкамі.
Выкарыстанне матэматычнага апарата для аналізу алгарытмаў і іх рэалізацый называюць фармальнымі метадамі. Фармальныя метады прадугледжваюць прымяненне фармальных спецыфікацый і, як правіла, набору інструментаў для сінтаксічнага аналізу і доказы уласцівасцей спецыфікацый. Абстрагаванне ад дэталей рэалізацыі дазваляе ўсталяваць уласцівасці сістэмы незалежна ад яе рэалізацыі. Акрамя таго, дакладнасць і адназначнасць матэматычных сцвярджэнняў дазваляе пазбегнуць шматзначнасці і недакладнасці натуральных моў.
Па гіпотэзе Рычарда Мэйса «пазбяганне памылак лепш ліквідацыі памылак». Паводле гіпотэзы Гоара «доказ праграм вырашае праблему карэктнасці, дакументацыі і сумяшчальнасці». Доказ карэктнасці праграм дазваляе выяўляць ўласцівасці ў адносінах да ўсяго дыяпазону ўваходных дадзеных. Для доказу карэктнасці праграм, паняцце карэктнасці было пашырана на два тыпы:
- Частковая карэктнасць — праграма дае карэктны вынік для тых выпадкаў, калі яна завяршаецца.
- Поўная карэктнасць — праграма завяршае працу і выдае карэктны вынік для ўсіх элементаў з дыяпазону ўваходных дадзеных.
Пры доказе карэктнасці параўноўваюць тэкст праграмы са спецыфікацыяй жаданых суадносін уваходных-выходных дадзеных. Для доказаў тыпу Гоара гэтая спецыфікацыя выглядае сцвярджэнняў, якія называюць прад- і постумовы. У сукупнасці з самай праграмай, іх яшчэ называюць тройкамі Гоара. Гэтыя сцвярджэнні запісваюць
- P{Q}R
дзе P — гэта перадумова, што павінна выконвацца перад запускам праграмы Q, а R — постумовы, правільныя пасля завяршэння працы праграмы.
Фармальныя метады былі паспяхова ужытыя да шырокага кола задач, у прыватнасці: распрацоўка электронных схем, штучнага інтэлекту, сістэм, адчувальных да надзейнасці, бяспекі, аўтаматычных сістэм на чыгунцы, верыфікацыі мікрапрацэсараў, спецыфікацыі стандартаў і спецыфікацыі і верыфікацыі праграм.
Час работы
Распаўсюджаным крытэрыем ацэнкі алгарытмаў з'яўляецца час работы і парадак росту працягласці работы ў залежнасці ад аб'ёму ўваходных дадзеных.
Кожнай канкрэтнай задачы супастаўляюць некаторы лік, які называюць яе памерам. Напрыклад, памерам задачы вылічэнні здабытку матрыц можа быць максімальны памер матрыц-множнікаў, для задач на графах памерам можа быць колькасць рэбраў графа.
Час, які затрачвае алгарытм, як функцыя ад памеру задачы n, называюць часавай складанасцю гэтага алгарытму T(n). Асімптотыку паводзін гэтай функцыі пры павелічэнні памеру задачы называюць асімптатычнай часавай складанасцю, а для яе абазначэння выкарыстоўваюць натацыю Ландау (вялікае O).
Менавіта асімптатычная складанасць вызначае памер задач, якія алгарытм здольны апрацаваць. Напрыклад, калі алгарытм апрацоўвае ўваходныя дадзеныя памерам n за час cn², дзе c — некаторая пастаянная, то кажуць, што часавая складанасць такога алгарытму O(n²).
Часта, пры распрацоўцы алгарытму спрабуюць паменшыць асімптатычную часавую складанасць для горшых выпадкаў. На практыцы ж, бываюць выпадкі, калі дастатковы алгарытм, які «звычайна» працуе хутка.
Груба кажучы, аналіз сярэдняй асімптатычнай часовай складанасці можна падзяліць на два тыпы: аналітычны і статыстычны. Аналітычны метад дае больш дакладныя вынікі, але больш складаны ў выкарыстанні на практыцы. Затое статыстычны метад дазваляе хутчэй ажыццяўляць аналіз складаных задач.
У наступнай табліцы прыведзены распаўсюджаныя асімптатычныя складанасці з каментарыямі.
Складанасць | Каментарый | Прыклады |
---|---|---|
O(1) | Устойлівы час працы ў залежнасці ад памеру задачы | Чаканы час пошуку ў |
O(log log n) | Вельмі павольны рост неабходнага часу | Чаканы час працы інтэрпаліруючага пошуку n элементаў |
O(log n) | Лагарыфмічны рост — падваенне памеру задачы павялічвае час працы на пастаянную велічыню | Вылічэннеxn; у масіве з n элементаў |
O(n) | Лінейны рост — падваенне памеру задачы падвоіць і неабходны час | Складанне/адніманне лікаў з n цыфр; у масіве з n элементаў |
O(n log n) | Лінеарытмічны рост — падваенне памеру задачы павялічвае неабходны час крыху больш за удвая | або n элементаў; ніжняя мяжа сартыроўкі параўнаннем n элементаў |
O(n²) | Квадратычны рост — падваенне памеру задачы павялічвае неабходны час у чатыры разоў | Элементарныя |
O(n³) | Кубічны рост — падваенне памеру задачы павялічвае неабходны час у чатыры разоў | Звычайнае множанне матрыц |
O(cn) | Экспаненцыяльны рост — павелічэнне памеру задачы на 1 прыводзіць да c-кратнага павелічэння неабходнага часу; падваенне памеру задачы падае неабходна час у квадрат | Некаторыя задачы каміваяжора, алгарытмы пошуку поўным пераборам |
Уласцівасці алгарытма
- Дыскрэтнасць — каманды ці дзеянні выкладзены ў пэўнай паслядоўнасці. Выканаўшы адно дзеянне, адбываецца пераход да наступнага;
- Дэтэрмінаванасць — выканаўшы пэўную каманду, становіцца ясна, што рабіць далей;
- Элементарнасць каманд — каманды з'яўляюцца нескладанымі, проста і коратка апісваюцца і проста выконваюцца (патрабуецца мінімум );
- Масавасць — алгарытм можна выкарыстоўваць для вырашэння пэўнай групы задач.
Гл. таксама
- Схема Горнера
- Машына Цьюрынга
Зноскі
- (O'Regan, розділ 4.5)
- (Розділ 5.3.6 в Enders, 2003)
- (Раздзел 5.3.7 в Enders, 2003)
- (O'Regan, с. 119)
- (розділ 11 в Atallah, 2010)
- (розділ 1 в Atallah, 2010)
Літаратура
- Алгоритм // / И. М. Виноградов (гл. ред.). — М.: Советская энциклопедия, 1977. — Т. 1. — 576 с. — 150 000 экз. Стл. 202—206.
Вікіпедыя, Вікі, кніга, кнігі, бібліятэка, артыкул, чытаць, спампоўваць, бясплатна, бясплатна спампаваць, mp3, відэа, mp4, 3gp, jpg, jpeg, gif, png, малюнак, музыка, песня, фільм, кніга, гульня, гульні, мабільны, тэлефон, Android, iOS, Apple, мабільны тэлефон, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, Sonya, MI, ПК, Інтэрнэт, кампутар
Algary tm ad imya vuchonaga Al Harezmi pers خوارزمی al Khwarazmi dakladny nabor yakiya apisvayuc paradak dzeyannyay vykanayca dlya dasyagnennya vyniku rashennya zadachy za kanechny peyny chas U staroj traktoycy zamest slova paradak vykarystoyvalasya slova paslyadoynasc ale pa mery razviccya paralelnasci y raboce kamp yutaray slova paslyadoynasc stali zamyanyac bolsh agulnym slovam paradak Geta zvyazana z tym shto rabota nejkih instrukcyj algarytmu mozha zalezhac ad inshyh instrukcyj abo vynikay ih pracy Takim chynam nekatoryya instrukcyi pavinny vykonvacca stroga paslya zavyarshennya pracy instrukcyj ad yakih yany zalezhac Nezalezhnyya instrukcyi ci instrukcyi yakiya stali nezalezhnymi z za zavyarshennya pracy instrukcyj ad yakih yany zalezhac moguc vykonvacca y advolnym paradku paralelna abo adnachasova kali geta dazvalyayuc pracesar i aperacyjnaya sistema Ranej chasta pisali algaryfm cyaper takoe napisanne vykarystoyvaecca redka ale tym ne mensh mae mesca napryklad Narmalny algaryfm Markava Chasta u yakasci vykanayca vystupae nejki mehanizm kamp yutar takarny stanok shvejnaya mashyna ale panyacce algarytmu neabavyazkova adnosicca da kamp yutarnyh pragram tak napryklad vyrazna apisany recept prygatavannya stravy taksama z yaylyaecca algarytmam u takim vypadku vykanaycam z yaylyaecca chalavek Gistoryya terminaSuchasnae farmalnae aznachenne algarytmu bylo dadzena y 30 50 h gadah HH stagoddzya y pracah Cyurynga ru Chorcha N Vinera ru Staronka z Algebry Muhamad Al Harezmi persidskaga matematyka ad imya yakoga pahodzic slova Algarytm Samo slova algarytm pahodzic ad imya persidskaga vuchonaga Abu Abdulah Muhameda ibn Musa al Harezmi algarytm al Harezmi Kalya 825 goda yon napisay sachynenne u yakim upershynyu day apisanne prydumanaj u Indyi pazicyjnaj dzesyatkovaj sistemy lichennya Na zhal persidski aryginal knigi ne zahavaysya Al Harezmi sfarmulyavay pravily vylichennya y novaj sisteme i veragodna upershynyu vykarystay dlya abaznachennya prapushchanaj pazicyi y zapise liku yae indyjskuyu nazvu araby peraklali yak as sifr albo prosta sifr adsyul takiya slovy yak cyfra i shyfr Pryblizna y gety zh chas indyjskiya lichby pachali yzhyvac i inshyya arabskiya navukoycy U pershaj palove XII stagoddzya kniga al Harezmi y lacinskim perakladze trapila y Eyropu Perakladchyk imya yakoga da nas ne dajshlo day yoj nazvu Algoritmi de numero Indorum Algarytmy pra lichenne indyjskae Pa arabsku zh kniga nazyvalasya Kitab al dzhebr val mukabala Kniga pra skladanne i adymanne Z aryginalnaj nazvy knigi pahodzic slova Algebra algebra al dzhebr skladanne Takim chynam my bachym shto lacinizavanae imya syaredneaziyackaga vuchonaga bylo vynesena y zagalovak knigi i syonnya ni y kago nyama sumnennyay shto slova algarytm trapila y eyrapejskiya movy menavita dzyakuyuchy getamu sachynennyu Adnak pytanne pra yago sens doygi chas vyklikala zacyatyya sprechki Na pracyagu mnogih stagoddzyay pahodzhannyu slova davalisya samyya roznyya tlumachenni Adny vyvodzili algorism z grechaskih algiros hvory i arithmos lik Z za takoga tlumachennya ne velmi zrazumela chamu liki menavita hvoryya Ci lingvistam hvorymi zdavalisya lyudzi yakiya mayuc nyashchasce zajmacca vylichennyami Svayo tlumachenne prapanavay i encyklapedychny sloynik Brakgayza i Efrona U im algaryfm darechy da revalyucyi y Rasijskaya imperyi vykarystoyvalasya napisanne algori8m praz fitu vyvodzicca ad arabskaga slova Al Garetm shto znachyc koran Zrazumela getyya tlumachenni nayrad ci mozhna lichyc perakanaychymi Zgadany vyshej peraklad sachynennya al Harezmi stay pershaj lastaykaj i na pracyagu nekalkih nastupnyh stagoddzyay z yavilasya mnostva inshyh prac prysvechanyh usyo tamu zh pytannyu navuchannyu mastactvu lichennya z dapamogaj lichbay I yse yany y nazve meli slova algoritmi ci algorismi Pra al Harezmi paznejshyya aytary nichoga ne vedali ale pakolki pershy peraklad knigi pachynaecca slovami Dixit algorizmi Al Harezmi kazay usyo yashche zvyazvali getae slova z imem kankretnaga chalaveka Velmi raspaysyudzhanaj byla versiya pra grechaskae pahodzhanne knigi U angla narmanskim rukapise XIII stagoddzya napisanym u vershah chytaem Algaryzm byy prydumany y Grecyi Geta chastka aryfmetycy Prydumany yon byy majstram pa imi Algaryzm yaki day yamu svayo imya I pakolki yago zvali Algaryzm Yon nazvay svayu knigu Algaryzm Kalya 1250 goda anglijski astranom i matematyk napisay pracu pa aryfmetycy Algorismus vulgaris shto na stagoddzi stala asnoynym padruchnikam pa vylichennyah u dzesyatkovaj pazicyjnaj sisteme zlichennya y mnogih eyrapejskih universitetah Va yvodzinah Sakraboska nazvay aytaram navuki pra lichenne mudraca pa imi Algus Algus A y papulyarnaj syarednevyakovaj paeme 1275 1280 grechaski filosaf Algus stavicca y adzin rad z Platonam Arystocelem Eyklidam i Ptalameem Sustrakaysya taksama varyyant napisannya imya Argus Argus I hoc pavodle starazhytnagrechaskaj mifalogii karabel byy pabudavany Yasonam menavita getamu Argo prypisvalasya budaynictva karablya Majstar Algus ci Argus stay u syarednevyakovaj litaratury yvasablennem mastactva lichennya I va yzho zgadanym Ramane pra ruzhu i y vyadomaj italyanskaj paeme Kvetka napisanaj Durante yosc fragmenty u yakih gavorycca shto navat mestre Argus ne zdolee padlichyc kolki razoy svaracca i miracca zakahanyya Anglijski paet Dzhefry Choser u paeme 1369 g pisha shto navat znany lichylnik Argus noble countour Argu ne zmozha palichyc pachvar yakiya z yavilisya y zhahlivyh vidzezhah geroyu Zreshty grechaskaya versiya byla ne adzinaj Mifichny Algor Algor nazyvaysya to karalyom Kastylii Rex quodam Castelliae to to arabskim mudracom philosophus Algus nomine Arabicus Baranesa yakuyu lichac pershym pragramistam Adnak z chasam takiya tlumachenni ysyo mensh cikavili matematykay i slova algorism ci algorismus yakoe nyazmenna prysutnichala y nazvah matematychnyh sachynennyay nabylo znachenne sposabu vykanannya aryfmetychnyh dzeyannyay z dapamogaj arabskih lichbay geta znachyc na papery bez vykarystannya abaka Menavita y takim znachenni yano yvajshlo y mnogiya eyrapejskiya movy Napryklad z paznakaj sastarelae yano prysutnichae y pradstaynichym sloyniku anglijskaj movy Webster s New World Dictionary vydadzenym u 1957 godze Algarytm geta mastactva lichennya z dapamogaj lichbay ale spachatku slova lichba adnosilasya tolki da nulya Znakamity francuzski Gautier de Coincy 1177 1236 u adnym z vershay vykarystoyvay slova algorismus cipher yakiya aznachali lichbu 0 yak metafaru dlya haraktarystyki absalyutna nikchemnaga chalaveka Vidavochna razumenne takoga vobrazu patrabavala adpavednaj padryhtoyki sluhachoy a geta aznachae shto novaya sistema lichennya yzho byla im dosyc dobra vyadomaya Mnogiya stagoddzi abak byy faktychna adzinym srodkam dlya praktychnyh vylichennyay im karystalisya i kupcy i myanyaly i navukoycy Dobryya yakasci vylichennyay na doshcy tlumachyy u svaih sachynennyah taki vydatny myslicel yak 938 1003 yaki stay u 999 godze Papam Rymskim pad imem Silvestra II Novae z vyalikaj cyazhkascyu prabivala sabe darogu i y gistoryyu matematyki yvajshlo zacyatae supracstayanne lageray algarysmikay i chasam zvanyh gerbekistami yakiya prapagandavali vykarystanne dlya vylichennyay abaka zamest arabskih lichbay Cikava shto vyadomy francuzski matematyk Nicolas Chuquet 1445 1488 u reestr padatkaplacelshchykay gorada Liyona byy upisany yak algarysmik algoriste Ale prajshlo ne adno stagoddze persh chym novy sposab lichennya kanchatkova zacverdziysya stolki chasu spatrebilasya kab vypracavac agulnapryznanyya aznachenni udaskanalic i prystasavac da zapisu na papery metady vylichennyay U Zahodnyaj Eyrope nastaynikay aryfmetyki azhno da XVII stagoddzya pracyagvali zvac magistrami abaka yak napryklad matematyka Nikola Tartalyu 1500 1557 Pastupova znachenne slova pashyralasya Navukoycy pachynali yzhyvac yago ne tolki da vyklyuchna vylichalnyh ale i da inshyh matematychnyh pracedur Napryklad kalya 1360 goda francuzski filosaf Nicolaus Oresme 1323 25 1382 napisay matematychny traktat Algorismus proportionum Vylichenne praporcyj u yakim upershynyu vykarystoyvay stupeni z drobnymi pakazchykami i faktychna yshchylnuyu padyshoy da idei lagaryfmay Kali zh na zmenu abaku pryjshlo tak zvanae lichenne na liniyah shmatlikiya dapamozhniki pa im stali nazyvac Algorithmus linealis Mozhna zvyarnuc uvagu na toe shto pershapachatkovaya forma algorismi praz nejki chas stracila aposhnyuyu litaru i slova nabylo zruchnejshy dlya eyrapejskaga vymaylennya vyglyad algorism Paznej i yano u svayu chargu zazanala skazhenne hutchej za ysyo zvyazanae sa slovam arithmetic Algarytmy stanavilisya pradmetam usyo bolsh pilnaj uvagi vuchonyh i pastupova geta panyacce zanyalo adno z centralnyh mescay u suchasnaj matematycy Shto zh tychycca lyudzej ad matematyki dalyokih to da pachatku sarakavyh gadoy geta slova yany magli pachuc hiba shto y chas vuchoby y shkole u spaluchenni algarytm Eyklida Nyagledzyachy na geta algarytm usyo yashche ysprymaysya yak termin vyklyuchna specyyalny Adnachasova z razviccyom panyaccya algarytmu pastupova adbyvalasya i yago ekspansiya z chystaj matematyki y inshyya sfery I pachatak yoj paklala z yaylenne kamp yutaray dzyakuyuchy yakomu slova algarytm uvajshlo y 1985 godze va yse shkolnyya padruchniki infarmatyki i nabylo novae zhyccyo Naogul mozhna skazac shto yago syonnyashnyaya vyadomasc napramuyu zvyazana sa stupennyu raspaysyudzhannya kamp yutaray Aznachenni algarytmuAdzinaga sapraydnaga aznachennya panyaccya algarytm nyama Algarytm geta peyny nabor pravil yaki vyznachae paslyadoynasc aperacyj dlya vyrashennya kankretnaga mnostva zadach i valodae pyaccyu vazhnymi rysami kanechnasc vyznachanasc uvod vyvad efektyynasc D E Knut Algarytm geta ysyakaya sistema vylichennyay shto vykonvayucca pa stroga vyznachanyh pravilah yakaya paslya yakoj nebudz kolkasci krokay zavedama pryvodzic da vyrashennya pastaylenaj zadachy A Kalmagoray Algarytm geta dakladnae pradpisanne yakoe vyznachae vylichalny praces yaki idze ad zyhodnyh dadzenyh yakiya moguc var iravacca da shukanaga vyniku Algarytm dakladnae pradpisanne ab vykananni y vyznachanym paradku nejkaj sistemy aperacyj yakiya vyaduc da rashennya ysih zadach dadzenaga typu Filasofski sloynik Pad red M M Razentalya Algarytm stroga determinavanaya paslyadoynasc dzeyannyay yakaya apisvae praces peraytvarennya ab ekta z pachatkovaga stanu y kanchatkovy zapisany z dapamogaj zrazumelyh vykanaycu kamand padruchnik Infarmatyka i infarm Tehnalogii Farmalnyya ylascivasci algarytmayRoznyya aznachenni algarytmu y yaynaj abo nyayaynaj forme ytrymlivayuc nastupny sherag agulnyh patrabavannyay Dyskretnasc algarytm pavinen pradstaylyac praces rashennya zadachy yak paslyadoynae vykananne nejkih prostyh krokay Pry getym dlya vykanannya kozhnaga kroku algarytmu patrabuecca kanechny adrezak chasu geta znachyc peraytvarenne zyhodnyh dadzenyh u vynik azhyccyaylyaecca y chase dyskretna vyznachanasc U kozhny momant chasu nastupny krok pracy adnaznachna vyznachaecca stanam sistemy Takim chynam algarytm vydae adzin i toj zha vynik adkaz dlya adnyh i tyh zha zyhodnyh dadzenyh U suchasnaj traktoycy y roznyh realizacyj adnago i tago zh algarytmu pavinen byc izamorfny graf Z inshaga boku isnuyuc imavernasnyya algarytmy u yakih nastupny krok raboty zalezhyc ad byaguchaga stanu sistemy i generavanaga vypadkovaga liku Adnak pry yklyuchenni metadu generacyi vypadkovyh likay u spis zyhodnyh dadzenyh imavernasny algarytm stanovicca padvidam zvychajnaga Zrazumelasc algarytm dlya vykanayca pavinen uklyuchac tolki tyya kamandy yakiya yamu vykanaycu dastupnyya yakiya yvahodzyac u yago sistemu kamand Zavyarshalnasc kanechnasc pry karektna zadadzenyh zyhodnyh dadzenyh algarytm pavinen zavyarshac pracu i vydavac vynik za kanechnuyu kolkasc krokay Z inshaga boku imavernasny algarytm mozha i nikoli ne vydac vynik ale imavernasc getaga roynaya 0 Masavasc universalnasc Algarytm pavinen vykarystoyvacca i y dachynenni da roznyh naboray zyhodnyh dadzenyh Vynikovasc zavyarshenne algarytmu peynymi vynikami Algarytm zmyashchae pamylki kali pryvodzic da atrymannya nyapravilnyh vynikay abo ne dae vynikay zusim Algarytm ne zmyashchae pamylak kali yon dae pravilnyya vyniki dlya lyubyh dapushchalnyh zyhodnyh dadzenyh Vidy algarytmayAsablivuyu rolyu vykonvayuc prykladnyya algarytmy pryznachanyya dlya rashennya peynyh prykladnyh zadach Algarytm lichycca pravilnym kali yon adpavyadae patrabavannyam zadachy napryklad dae fizichna praydapadobny vynik Algarytm pragrama zmyashchae pamylki kali dlya nekatoryh zyhodnyh dadzenyh yon dae nyapravilnyya vyniki zboi admovy ci ne dae niyakih vynikay naogul Aposhni tezis vykarystoyvaecca y alimpiyadah pa algarytmichnym pragramavanni kab acanic skladzenyya ydzelnikami pragramy Vazhnuyu rolyu grayuc rekursiynyya algarytmy algarytmy yakiya vyklikayuc sami syabe da tago chasu pakul ne budze dasyagnuta nejkaya ymova vyartannya Pachynayuchy z kanca XX pachatku XXI stagoddzya aktyyna raspracoyvayucca paralelnyya algarytmy pryznachanyya dlya vylichalnyh mashyn zdolnyh vykonvac nekalki aperacyj adnachasova Nayaynasc zyhodnyh dadzenyh i peynaga vynikuAlgarytm geta dakladna vyznachanaya instrukcyya paslyadoyna yzhyvayuchy yakuyu da zyhodnyh dadzenyh mozhna atrymac rashenne zadachy Dlya kozhnaga algarytmu yosc nejkae mnostva ab ektay dapushchalnyh u yakasci zyhodnyh dadzenyh Napryklad u algarytme dzyalennya rechaisnyh likay dzyalimae mozha byc lyubym a dzelnik ne mozha byc royny nulyu Algarytm sluzhyc yak pravila dlya rashennya ne adnoj kankretnaj zadachy a nejkaga klasa zadach Tak algarytm skladannya vykarystoyvaecca y dachynenni da lyuboj pary naturalnyh likay U getym vyyaylyaecca yago ylascivasc masavasci geta znachyc magchymasci vykarystoyvac mnogarazova adzin i toj zha algarytm dlya lyuboj zadachy adnago klasu Dlya raspracoyki algarytmay i pragram vykarystoyvaecca algarytmizacyya praces sistematychnaga skladannya algarytmay dlya vyrashennya pastaylenyh prykladnyh zadach Algarytmizacyya lichycca abavyazkovym etapam u pracese raspracoyki pragram i rashenni zadach na EVM Menavita dlya prykladnyh algarytmay i pragram pryncypova vazhnyya determinavanasc vynikovasc i masavasc a taksama pravilnasc vynikay rashennya pastaylenyh zadach Algarytm geta zrazumelae i dakladnae pradpisanne vykanac paslyadoynasc dzeyannyay nakiravanyh na dasyagnenne met Forma algarytmayAlgarytm mozha byc zapisany slovami i pakazany shematychna Zvychajna spachatku na yzroyni idei algarytm apisvaecca slovami ale pa mery nablizhennya da realizacyi yon nabyvae ysyo bolsh farmalnyya abrysy i farmulyoyku na move zrazumelaj vykanaycu napryklad mashynny kod Napryklad dlya apisannya algarytmu vykarystoyvayucca blok shemy Inshym varyyantam apisannya nezalezhnym ad movy pragramavannya z yaylyaecca pseydakod Efektyynasc algarytmayHoc u aznachenni algarytmu patrebna tolki kanechnasc kolkasci krokay neabhodnyh dlya dasyagnennya vyniku na praktycy vykananne navat hacya b milyarda krokay zanadta pavolnae Taksama zvychajna yosc inshyya abmezhavanni na pamer pragramy na dapushchalnyya dzeyanni U suvyazi z getym uvodzyac takiya panyacci yak skladanasc algarytma chasavaya pa pamery pragramy vylichalnaya i insh Dlya kozhnaga zapisu mozha isnavac mnostva algarytmay shto pryvodzyac da mety Pavelichenne efektyynasci algarytmay skladae adnu z zadach suchasnaj infarmatyki U 50 h gg XX stagoddzya z yavilasya navat yae asobnaya galina hutkiya algarytmy U pryvatnasci u znayomaj usim z dzyacinstva zadachy ab pamnazhenni dzesyatkovyh likay vyyaviysya sherag algarytmay yakiya dazvalyayuc istotna u asimptatychnym sense paskoryc znahodzhanne zdabytku Yaskravym prykladam z yaylyaecca algarytm Chudnoyskaga dlya vylichennya liku p Analiz algarytmayDokaz karektnasci Razam z raspaysyudzhannem infarmacyjnyh tehnalogij pavyalichylasya ryzyka pragramnyh zboyay Adnym z sposabay pazbegnuc pamylak u algarytmah i ih realizacyyah z yaylyaecca davyadzenne karektnasci sistem matematychnymi srodkami Vykarystanne matematychnaga aparata dlya analizu algarytmay i ih realizacyj nazyvayuc farmalnymi metadami Farmalnyya metady pradugledzhvayuc prymyanenne farmalnyh specyfikacyj i yak pravila naboru instrumentay dlya sintaksichnaga analizu i dokazy ulascivascej specyfikacyj Abstragavanne ad detalej realizacyi dazvalyae ystalyavac ulascivasci sistemy nezalezhna ad yae realizacyi Akramya tago dakladnasc i adnaznachnasc matematychnyh scvyardzhennyay dazvalyae pazbegnuc shmatznachnasci i nedakladnasci naturalnyh moy Pa gipoteze Rycharda Mejsa pazbyaganne pamylak lepsh likvidacyi pamylak Pavodle gipotezy Goara dokaz pragram vyrashae prablemu karektnasci dakumentacyi i sumyashchalnasci Dokaz karektnasci pragram dazvalyae vyyaylyac ylascivasci y adnosinah da ysyago dyyapazonu yvahodnyh dadzenyh Dlya dokazu karektnasci pragram panyacce karektnasci bylo pashyrana na dva typy Chastkovaya karektnasc pragrama dae karektny vynik dlya tyh vypadkay kali yana zavyarshaecca Poynaya karektnasc pragrama zavyarshae pracu i vydae karektny vynik dlya ysih elementay z dyyapazonu yvahodnyh dadzenyh Pry dokaze karektnasci paraynoyvayuc tekst pragramy sa specyfikacyyaj zhadanyh suadnosin uvahodnyh vyhodnyh dadzenyh Dlya dokazay typu Goara getaya specyfikacyya vyglyadae scvyardzhennyay yakiya nazyvayuc prad i postumovy U sukupnasci z samaj pragramaj ih yashche nazyvayuc trojkami Goara Getyya scvyardzhenni zapisvayuc P Q R dze P geta peradumova shto pavinna vykonvacca perad zapuskam pragramy Q a R postumovy pravilnyya paslya zavyarshennya pracy pragramy Farmalnyya metady byli paspyahova uzhytyya da shyrokaga kola zadach u pryvatnasci raspracoyka elektronnyh shem shtuchnaga intelektu sistem adchuvalnyh da nadzejnasci byaspeki aytamatychnyh sistem na chyguncy veryfikacyi mikrapracesaray specyfikacyi standartay i specyfikacyi i veryfikacyi pragram Chas raboty Grafiki funkcyj navedzenyh u tablicy nizhej Raspaysyudzhanym kryteryem acenki algarytmay z yaylyaecca chas raboty i paradak rostu pracyaglasci raboty y zalezhnasci ad ab yomu yvahodnyh dadzenyh Kozhnaj kankretnaj zadachy supastaylyayuc nekatory lik yaki nazyvayuc yae pameram Napryklad pameram zadachy vylichenni zdabytku matryc mozha byc maksimalny pamer matryc mnozhnikay dlya zadach na grafah pameram mozha byc kolkasc rebray grafa Chas yaki zatrachvae algarytm yak funkcyya ad pameru zadachy n nazyvayuc chasavaj skladanascyu getaga algarytmu T n Asimptotyku pavodzin getaj funkcyi pry pavelichenni pameru zadachy nazyvayuc asimptatychnaj chasavaj skladanascyu a dlya yae abaznachennya vykarystoyvayuc natacyyu Landau vyalikae O Menavita asimptatychnaya skladanasc vyznachae pamer zadach yakiya algarytm zdolny apracavac Napryklad kali algarytm apracoyvae yvahodnyya dadzenyya pameram n za chas cn dze c nekatoraya pastayannaya to kazhuc shto chasavaya skladanasc takoga algarytmu O n Chasta pry raspracoycy algarytmu sprabuyuc pamenshyc asimptatychnuyu chasavuyu skladanasc dlya gorshyh vypadkay Na praktycy zh byvayuc vypadki kali dastatkovy algarytm yaki zvychajna pracue hutka Gruba kazhuchy analiz syarednyaj asimptatychnaj chasovaj skladanasci mozhna padzyalic na dva typy analitychny i statystychny Analitychny metad dae bolsh dakladnyya vyniki ale bolsh skladany y vykarystanni na praktycy Zatoe statystychny metad dazvalyae hutchej azhyccyaylyac analiz skladanyh zadach U nastupnaj tablicy pryvedzeny raspaysyudzhanyya asimptatychnyya skladanasci z kamentaryyami Skladanasc Kamentaryj PrykladyO 1 Ustojlivy chas pracy y zalezhnasci ad pameru zadachy Chakany chas poshuku yO log log n Velmi pavolny rost neabhodnaga chasu Chakany chas pracy interpaliruyuchaga poshuku n elementayO log n Lagaryfmichny rost padvaenne pameru zadachy pavyalichvae chas pracy na pastayannuyu velichynyu Vylichennexn u masive z n elementayO n Linejny rost padvaenne pameru zadachy padvoic i neabhodny chas Skladanne adnimanne likay z n cyfr u masive z n elementayO n log n Linearytmichny rost padvaenne pameru zadachy pavyalichvae neabhodny chas kryhu bolsh za udvaya abo n elementay nizhnyaya myazha sartyroyki paraynannem n elementayO n Kvadratychny rost padvaenne pameru zadachy pavyalichvae neabhodny chas u chatyry razoy ElementarnyyaO n Kubichny rost padvaenne pameru zadachy pavyalichvae neabhodny chas u chatyry razoy Zvychajnae mnozhanne matrycO cn Ekspanencyyalny rost pavelichenne pameru zadachy na 1 pryvodzic da c kratnaga pavelichennya neabhodnaga chasu padvaenne pameru zadachy padae neabhodna chas u kvadrat Nekatoryya zadachy kamivayazhora algarytmy poshuku poynym peraboramUlascivasci algarytmaDyskretnasc kamandy ci dzeyanni vykladzeny y peynaj paslyadoynasci Vykanayshy adno dzeyanne adbyvaecca perahod da nastupnaga Determinavanasc vykanayshy peynuyu kamandu stanovicca yasna shto rabic dalej Elementarnasc kamand kamandy z yaylyayucca neskladanymi prosta i koratka apisvayucca i prosta vykonvayucca patrabuecca minimum Masavasc algarytm mozhna vykarystoyvac dlya vyrashennya peynaj grupy zadach Gl taksamaShema Gornera Mashyna CyuryngaZnoski O Regan rozdil 4 5 Rozdil 5 3 6 v Enders 2003 Razdzel 5 3 7 v Enders 2003 O Regan s 119 rozdil 11 v Atallah 2010 rozdil 1 v Atallah 2010 LitaraturaAlgoritm I M Vinogradov gl red M Sovetskaya enciklopediya 1977 T 1 576 s 150 000 ekz Stl 202 206