Мушкилии алгоритм пеш аз ҳама ду манбаъро баррасӣ мекунад:
вақт
(давоми ичро) ва
фазо
(истифодаи хотира). Дар ҳоле ки мураккабии вақт чен мекунад, ки чӣ гуна вақти кор бо андозаи воридот афзоиш меёбад (
н
), мураккабии фазо истеъмоли хотираро арзёбӣ мекунад. Барои намуна:
- Алгоритм бо
О(н)
мураккабии вақт ба таври хаттӣ бо андозаи вуруд.
- Алгоритм бо
O(1)
мураккабии фазои истифода мебарад хотираи доимӣ новобаста аз андозаи вуруди.
Ҳарду нишондиҳанда муҳиманд. Алгоритми зуд метавонад хотираро дар маҷмӯаҳои додаҳои калон тамом кунад, дар ҳоле ки алгоритми самараноки хотира метавонад барои замимаҳои вақти воқеӣ хеле суст бошад.
Самаранокӣ имконпазириро талаб мекунад. Баррасӣ кунед, ки рӯйхати 10 адад ва 10 миллионро ҷудо кунед:
- A
навъи ҳубобӣ
(
О(н)
) метавонад барои маҷмӯи додаҳои хурд кифоя бошад, аммо барои маҷмӯаҳои калон ғайриимкон мегардад.
- A
навъ муттаҳид
(
O(n log n)
) маҷмӯи додаҳои калонтарро ба таври зебо идора мекунад, аммо хотираи иловагӣ талаб мекунад.
Таҳлили мураккабӣ забони универсалиро барои муқоисаи алгоритмҳо таъмин мекунад ва тафсилоти мушаххаси сахтафзорро абстракт мекунад. Он ба таҳиягарон имкон медиҳад, ки миқёспазириро пешгӯӣ кунанд ва аз монеаҳо дар системаҳои муҳим канорагирӣ кунанд.
Нишонаҳои асимптотикӣ рафтори маҳдудкунандаи функсияҳоро тавсиф мекунанд, ки стенографияи мураккабиро пешниҳод мекунанд. Се аломати асосӣ инҳоянд:
Нишонаи Big O ҳадди аксар вақт ё фазоеро, ки алгоритм мегирад, муайян мекунад. Масалан:
-
O(1)
: Вақти доимӣ (масалан, дастрасӣ ба унсури массив аз рӯи индекс).
-
О(н)
: Вақти хатӣ (масалан, такрори рӯйхат).
-
О(н)
: Вақти квадратӣ (масалан, ҳалқаҳои лона дар навъҳои ҳубобӣ).
Big O метрикаи маъмултарин истифодашаванда аст, зеро он шифтҳои иҷроишро кафолат медиҳад.
Омега ҳадди ақали вақти заруриро тавсиф мекунад. Барои намуна:
- Ҷустуҷӯи хаттӣ дорад
(1)
агар максад элементи якум бошад.
Дар ҳоле ки оптимистӣ, таҳлили беҳтарин барои банақшагирии бадтарин маълумот камтар аст.
Тета Big O ва Omega-ро муттаҳид мекунад, ки рафтори дақиқи асимптотикиро ифода мекунад. Агар алгоритмҳои беҳтарин ва бадтарин ҳолатҳо якхела бошанд:
-
(n log n)
барои якҷоя кардани навъҳои миёна ва бадтарин сенарияҳо дахл дорад.
Ин нишондодҳо константаҳо ва шартҳои поёнтарро абстракт карда, ба суръати афзоиш тамаркуз мекунанд. Масалан, 2н + 3н + 4 содда мекунад О(н) зеро истилоҳи квадратӣ барои калон ҳукмфармост н .
Фаҳмидани синфҳои мураккабӣ алгоритмҳоро аз рӯи миқёспазирӣ гурӯҳбандӣ мекунад. Дар ин ҷо иерархия аз ҳама то камтар самаранок аст:
Вақти иҷро ё хотира бетағйир боқӣ мемонад
н
меафзояд.
-
Мисол
: Дастрасӣ ба арзиши ҷадвали ҳаш тавассути калид.
Вақти иҷро бо логарифмӣ меафзояд
н
.
-
Мисол
: Ҷустуҷӯи дуӣ фазои вурудро ҳар як такрорӣ ду маротиба кам мекунад.
Вақти иҷро мутаносибан бо
н
.
-
Мисол
: Ҷустуҷӯи хаттӣ тавассути рӯйхати номатлуб.
Дар алгоритмҳои тақсим ва ғалаба маъмул аст.
-
Мисол
: Якҷоя кардани навъ ва навъбандии теппа.
Итератсияҳои лона ба афзоиши таркиш оварда мерасонанд.
-
Мисол
: Навъи ҳубобӣ ва навъбандии интихоб.
Вақти кор бо ҳар як вуруди иловагӣ дучанд мешавад.
-
Мисол
: Ҳисобкунии рекурсивии Фибоначӣ бидуни ёддошт.
Алгоритмҳои ба ивазкунӣ асосёфта.
-
Мисол
: Ҳалли мушкилоти фурӯшандаи сайёр тавассути қувваи бераҳмона.
Фарқи байни O(n log n) ва О(н) сахтгир мегардад n = 10 : якум метавонад дар миллисонияҳо иҷро шавад, дар ҳоле ки дуюм метавонад рӯзҳоро дар бар гирад.
Алгоритмҳо дар асоси конфигуратсияҳои вуруд гуногун иҷро мекунанд. Таҳлили ҳама ҳолатҳо устувориро таъмин мекунад:
Оптимизатори дархости пойгоҳи дода метавонад байни пайвастшавии ҳашро интихоб кунад ( О(n + м) ) ва пайвастагии ҳалқаи лона ( О(нм) ) дар асоси тақсимоти маълумот. Таҳлили бадтарин ҳолат барои системаҳои муҳими бехатарӣ (масалан, нармафзори авиатсионӣ), ки дар он ҷо пешгӯинашаванда қобили қабул нест, муҳим аст.
Як масъаларо бо истифода аз алгоритмҳои гуногун ҳал кардан мумкин аст. Масалан, масъалаи ҷустуҷӯи арзиши мақсаднок дар рӯйхати арзишҳо метавонад бо истифода аз алгоритмҳои гуногун, аз қабили ҷустуҷӯи хатӣ, ҷустуҷӯи бинарӣ ё ҷустуҷӯи ҷадвали ҳаш ҳал карда шавад.
Дар ҷадвали зер мураккабии вақт ва фазои ин алгоритмҳо барои ҷустуҷӯи арзиши мақсаднок дар рӯйхати н арзишҳо.
Интихоби алгоритм аз андозаи мушкилот, хусусиятҳои вуруд ва захираҳои мавҷуда вобаста аст. Масалан, агар рӯйхат хурд ва ҷудонашуда бошад, ҷустуҷӯи хатӣ метавонад беҳтарин интихоб бошад. Агар рӯйхат калон ва мураттаб бошад, ҷустуҷӯи дуӣ метавонад беҳтарин интихоб бошад. Агар рӯйхат калон ва ҷудонашуда бошад, ҷустуҷӯи ҷадвали ҳаш метавонад беҳтарин интихоб бошад.
Таҳлили амортизатсия вақти миёнаро дар як пайдарпайии амалиётҳо ҳисоб мекунад.
-
Мисол
: Массивҳои динамикӣ иқтидори дучандон ҳангоми пур. Дар ҳоле ки ягона
Тела
амалиёт метавонад гирифта шавад
О(н)
вақт, арзиши амортизатсия боқӣ мемонад
O(1)
.
Алгоритмҳо ба монанди
Монте Карло
ва
Лас Вегас
тасодуфиро барои самаранок истифода баред.
-
Мисол
: Санҷиши ибтидоии Миллер-Рабин дорои кафолатҳои эҳтимолӣ аст, аммо нисбат ба усулҳои детерминистӣ тезтар аст.
Баъзе мушкилот (масалан, қаноатмандии булӣ) мебошанд NP - пурра , маънои ҳалли маълуми вақти полиномӣ вуҷуд надорад. Исботи пуррагии NP тавассути коҳишҳо ба тасниф кардани сахтии ҳисобкунӣ кӯмак мекунад.
Ан О(н) алгоритми кластерӣ метавонад як монеа барои маҷмӯаҳои азими додаҳо гардад ва боиси гузариш ба усулҳои тахминӣ ба монанди дарахтони kd ( O(n log n) ).
Системаҳои калиди оммавӣ ба сахтии он такя мекунанд O(2) мушкилот (масалан, факторизатсияи бутун) барои муқовимат ба ҳамлаҳо.
Муҳаррикҳои рендеринг дар вақти воқеӣ афзалият медиҳанд O(1) алгоритмҳо барои моделиронии физика барои нигоҳ доштани 60+ FPS.
Муомилот муҳим аст:
-
Вақт vs. Фазо
: Харитаҳои хэшро истифода баред (
O(1)
ҷустуҷӯҳо) бо арзиши хотира.
-
Соддаӣ vs. Оптималӣ
: Навъи дохилкунӣ (
О(н)
) метавонад барои маҷмӯаҳои хурд ва тақрибан мураттабшуда афзалтар бошад.
Барои алгоритмҳои рекурсивӣ, вақти иҷрои модели муносибатҳои такрорӣ. Масалан, такрори навъҳои якҷоякунӣ:
[ T(n) = 2T(n/2) + O(n) ] ҳал мекунад
O(n log n)
тавассути
Мастер теорема
.
Санҷиши эмпирикӣ таҳлили назариявиро пурра мекунад. Воситаҳои профилсозӣ (масалан, Valgrind, perf) монеаҳои воқеиро ошкор мекунанд.
питон
def linear_sum(arr):
умумии = 0
барои шумораи дар arr:
умумии += адад
баргардонидани умумии
def квадратии_sum(arr):
умумии = 0
барои ман дар arr:
барои j дар arr:
умумии += i * j
баргардонидани умумии
Дар ҳоле ки О(н) константаҳоро абстракт мекунад, а 100н алгоритм метавонад аз а сусттар бошад 0.01н алгоритми амалӣ н .
Ан O(n log n) алгоритм метавонад кам кор кунад О(н) барои n = 10 аз хисоби харочот.
Функсияи ёддоштшудаи Фибоначӣ ( О(н) фазои) метавонад дар вурудоти калон бархӯрд, бар хилофи версияи такрорӣ ( O(1) фазо).
BST худтанзимкунанда ( O(log n) ҷустуҷӯ) нисбат ба BST муқаррарӣ бехатартар аст ( О(н) бадтарин ҳолат) барои маълумоти беэътимод.
Таҳлили мураккабии алгоритм қутбнамоест, ки таҳиягаронро тавассути манзараи васеи самаранокии ҳисоббарорӣ роҳнамоӣ мекунад. Барои донишҷӯёни MTSC7196, азхудкунии ин фан дониши назариявӣ ва таҷрибаи амалиро мепайвандад. Тавассути ҷудо кардани талаботҳои вақт ва фазо, муқоисаи ҳудуди асимптотикӣ ва паймоиши мубодилаи воқеии ҷаҳон, таҳиягарон метавонанд системаҳоеро таҳия кунанд, ки миқёси зебо ва боэътимод иҷро мекунанд.
Дар даврае, ки аз ҷониби навовариҳои ба маълумот асосёфта муайян карда мешавад, қобилияти фарқ кардани байни як O(n log n) ва а О(н) ҳалли танҳо академикҳо як амри стратегӣ нест. Ҳангоми пешрафт дар таҳсил, дар хотир доред: таҳлили мураккабӣ танҳо дар бораи рақамҳо ва рамзҳо нест. Он дар бораи фаҳмидани набзи худи ҳисоббарорӣ аст.
Аз соли 2019, вохӯриҳои шумо дар Гуанчжоу, Чин, пойгоҳи истеҳсолии заргарӣ таъсис дода шуд. Мо як соземаи корхонаи корхонаҳои ҷангӣ ҳастем, истеҳсол ва фурӯш.
+86-19924726359/+86-13431083798
Ошёнаи 13, бурҷи Ғарби шаҳри Смарт, № 33 Кӯчаи Ҷезин, ноҳияи Ҳавсу, Гуанжоу, Чин.