Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
rekurzívny algoritmus možno rozdeliť do čiastkových problémov , pomocou " rozdeľ a panuj " stratégiu . Každá z týchto čiastkových problémov odbočuje z pôvodného problému a môže byť myšlienka ako uzol . Za hlavné vety , tieto uzly sa nazývajú n /b , kde n je veľkosť pôvodný problém , a b je počet kusov , do ktorej je zlomené , predpokladá sa , že rovnako veľké . Z každej z týchto uzlov , podriadené uzly môže odbočiť , čo môže byť tiež riešiť jeden po druhom sa rozdeľ a panuj stratégie .
Majster Veta
Hlavná veta pracuje rekurzívnych algoritmov T (n ) , kde T ( n) = u (n /b ) + f (n ) , a T ( 1 ) = C , tak , že je počiatočná hodnota , z ktorej sa vytvárajú rekurzia . Príkladom je T ( n) = 2T (n /4 ) + n ^ 2. Master teorém potom kategorizuje algoritmus do kategórie s inými algoritmami , ktoré berú rovnaké množstvo práce .
Prípadoch neuvedených
majster veta nemôže byť použiť v prípade , T ( n) je monotónna , ako je napríklad n sin . Takáto funkcia nepociťuje rast , čo je dôvod , prečo sa nazýva monotónna . f ( n) musí byť polynóm , napríklad 2x ^ 3 + 3x + 4 , na rozdiel od funkcie , ako je 2 ^ n b musí byť aspoň 2 , a musí byť aspoň 1 , a c musí byť pozitívna .
Príklad
T ( n) = 8T (n /2 ) + 1000N ^ 2
T ( n) = theta ( n ^ ( log_base_b ) ) Spojené
= 8
b = 2
T ( n) = theta (n ^ 3 )
To nám hovorí , že tento rekurzívny algoritmus patrí do typu n ^ 3 , a budú mať rovnakú prevádzkovú dobu ako ostatné algoritmy v tejto kategórii .