Подели па владај (информатика) — разлика између измена
Садржај обрисан Садржај додат
мНема описа измене |
мНема описа измене |
||
Ред 1:
{{радови у току}}
Један од најстаријих закона „[[подели па владај]]“ ({{јез-лат|divide et impera}}, такође
Бит постпупка је да се већи проблем рашчлани на више мањих, који су једноставнији за сагледавање и појдиначно решавање.
* Решење
* Решење проблема се добија међусобним повезивањем решења
* Решење проблема се добија бирањем једног од решења
== Примери ==
Линија 27 ⟶ 31:
Резултате оба позива упоредити и вратити већи број.
Поједностављење које се постиже овим алгоритмом је да се увек пореде два или врати само један преостали број тј. када низ има дужину већу од 2, у једном позиву алгоритма се не пореде сви елементи. Следи шематски приказ на коме се може видети на који начин алгоритам дели и обрађује низ:
<table><tr valign="top"><td>
Линија 38 ⟶ 42:
<font style="background-color:#ff0000"> </font> - Враћени максимуми (под)низова
<font style="background-color:#e9b022"> </font> -
</td></tr></table>
Треба приметити да се обрада поднизова -{I}- и -{VI}- може паралелизовати, јер би се радило о позивима истог алгоритма над два подниза. Ови позиви не морају да знају ишта о другим позивима, већ само да позиву у коме су позвани врате своје резултате које ће он обрадити.
Под условом да се сви потребни позиви могу паралелизовати, сложеност оваквог алгоритма је одређена висином нацртаног графа. Конкретно, пошто се низ стално дели на два дела, сложеност овог алгоритма при обради низа од ''-{n}-'' елемената ће бити ''-{O(log<sub>2</sub>n)}-'', што је мање од ''-{O(n)}-'', колико би износила сложеност линеарне претраге.
▲* Решење последњег подпроблема је истовремено и решење проблема. На пример, приликом претраживања уређеног [[бинарно стабло|бинарног стабла]] је тражени чвор управо чвор до кога се дошло при последњем извршеном кораку.
▲* Решење проблема се добија међусобним повезивањем решења подпроблема. На пример, приликом сортирања низа помоћу брзог сорта (-{quick sort}-) низ се сортира тако што се подели на два делимично уређена низа, а потом сваки од њих настави уређивати на исти начин. Завршетак последњег корака озвачава да је низ сортиран, али цео низ није нужно сортиран само у том кораку.
▲* Решење проблема се добија бирањем једног од решења подпроблема према одређеним условима. На пример, приликом тражења потпростора који испуњава одређене услове у датом простору је битно да уколико решења има више, буде изабрано оно које је за даљи рачун најпогодније.
== Види још ==
* [[Квиксорт]]
* [[Бинарна претрага]]
[[Категорија:Парадигме програмирања]]
|