Strukture podataka i algoritmi 9 REKURENTNE JEDNAINE Rekurentne
- Slides: 26
Strukture podataka i algoritmi 9. REKURENTNE JEDNAČINE
Rekurentne jednačine □ □ □ U analizi rekurzivnih algoritama obično se srećemo sa rekurentnim jednačinama koje na neki način treba riješiti. Rekurentnom jednačinom se definiše vrijednost funkcije za neki argument pomoću vrijednosti iste funkcije za manje argumente. Zadatak je naći formulu za T(n) izraženu samo pomoću veličine ulaza n. Strukture podataka i algoritmi
Metodi za rješavanje rekurentnih jednačina • Metod višestruke zamjene • Metod stabla rekurzije • Metod nagađanja • Opšti metod Strukture podataka i algoritmi
Metod višestruke zamjene • Sastoji se od višestrukog zamjenjivanja vrijednosti T(m) za m<n opštim oblikom rekurentnog dijela jednačine za T(n) • Nakon nekoliko zamjena bi se trebao dobiti opšti obrazac za T(n) (trenutak kada taj opšti oblik prelazi u bazni slučaj) • Primjer: merge-sort i quick-sort Strukture podataka i algoritmi
Sortiranje objedinjavanjem (merge-sort) □ Vrijeme izvršavanja za merge-sort(a, n): �� (�� )= { ako je �� = 1 �� , 2�� (�� /2) + ���� , ako je �� > 1 Strukture podataka i algoritmi
Sortiranje objedinjavanjem (merge-sort) □ Vrijeme izvršavanja za merge-sort(a, n): �� (�� )= { □ ako je �� = 1 �� , 2�� (�� /2) + ���� , ako je �� > 1 Rješenje: �� (�� ) = �� (�� log �� ) Strukture podataka i algoritmi
Sortiranje objedinjavanjem (merge-sort) □ Zašto �� (�� ) = �� (�� log �� )? Strukture podataka i algoritmi
Metod stabla rekurzije • Rekurentna jednačina se predstavlja stablom u kojem nas svaka zamjena rekurentnog dijela jednačine dovodi do jednog nivoa dublje u stablu • Da bismo dobili ukupno vrijeme za cijelo stablo rekurzije tj. rješenje rekurentne jednačine, sabiramo vremena po svim nivoima stabla Strukture podataka i algoritmi
Primjer 1: merge-sort (c=1) □ Vrijeme izvršavanja za merge-sort(a, n): �� (�� )= { □ ako je �� = 1 �� , 2�� (�� /2) + �� , ako je �� > 1 Da bismo niz dužine n sortirali objedinjavanjem, moramo sortirati objedinjavanjem dva podniza dužine n/2 i uraditi n jedinica dodatnog posla za njihovo nerekurzivno objedinjavanje Strukture podataka i algoritmi
Primjer 1: merge-sort (c=1) □ Stablo rekurzije za rekurentnu jednačinu merge-sort: �� (�� )=2�� (�� /2) + �� Strukture podataka i algoritmi
Primjer 1: merge-sort (c=1) • Stablo ima logn + 1 nivo (to su nivoi 0, 1, 2, . . . , logn) • Svaki nivo doprinosi istu vrijednost od n jedinica dodatnog vremena • Ukupno vrijeme je T (n) = n (logn + 1) = n logn + n Strukture podataka i algoritmi
Primjer 2: □ Vrijeme izvršavanja za rekurentnu jednačinu: �� (�� )= { □ ako je �� = 1 �� , 2, 3�� (�� /2) + �� ako je �� > 1 Da bismo riješili problem veličine n, rješavamo 3 podproblema veličine n/2 i radimo n 2 jedinica dodatnog posla Strukture podataka i algoritmi
Primjer 2 – stablo rekurzije: 2 �� (�� ) = 3�� (�� /2) + �� Strukture podataka i algoritmi
Primjer 2: Strukture podataka i algoritmi
Primjer 2 – rješenje rekurentne jednačine Strukture podataka i algoritmi
Metod nagađanja • Prvo se promišljeno pretpostavi rješenje date rekurentne jednačine • Zatim se ta pretpostavka potvrdi, obično matematičkom imdukcijom • Ukoliko se pretpostavka ne ispostavi tačnom, pravi se nova i postupak ponavlja Strukture podataka i algoritmi
Primjer: □ Vrijeme izvršavanja za rekurentnu jednačinu: �� (�� )= { □ a, 2�� (�� /2) + b�� logn, ako je �� = 1 ako je �� > 1 S obzirom da je ova jednačina slična sortiranju objedinjavanjem, pretpostavljamo da je rješenje T(n) = O(n logn) ----- pretpostavka 1 Strukture podataka i algoritmi
Primjer – dokaz pretpostavke 1: Strukture podataka i algoritmi
Primjer – dokaz pretpostavke 1: Strukture podataka i algoritmi
Pretpostavka 2 – T(n) = O(n 2): Probamo neku funkciju koja brže raste npr. T(n) = O(n 2) Strukture podataka i algoritmi
Opšti metod Strukture podataka i algoritmi
Opšti metod - teorema: • • Opšti metod se zasniva na teoremi: TEOREMA: Neka je nenegativna funkcija T(n) data rekurentnom jednačinom d, �� (�� )= { k, a�� (�� /b) + c�� Strukture podataka i algoritmi ako je �� ≤ �� 0 ako je �� > �� 0
Zaključak • • U analizi rekurzivnih algoritama obično se srećemo sa rekurentnim jednačinama koje na neki način treba riješiti. Rješavanje rekurentne jednačine podrazumijeva pronalaženje formulu za T(n) izraženu samo pomoću veličine ulaza n. Metodi za rješavanje rekurentnih jednačina: metod višestruke zamjene, metod stabla rekurzije, metod nagađanja i opšti metod. Metod višestruke zamjene: sastoji se od višestrukog zamjenjivanja vrijednosti T(m) za m<n opštim oblikom rekurentnog dijela jednačine za T(n). Strukture podataka i algoritmi
Zaključak 2 Strukture podataka i algoritmi
Hvala na pažnji! Strukture podataka i algoritmi
- Strukture podataka i algoritmi
- Strukture i vrste podataka u pythonu
- Programski jezici i strukture podataka
- Rekurentne jednacine
- Funkcionalni model organizacione strukture
- Konvencionalne radiološke metode
- Diviziona organizaciona struktura
- Finansijska analiza
- Rezonantni efekat
- Piramidalna struktura
- Ciklična struktura
- Programske strukture
- Nivoi strukture proteina
- Strukture c++
- Vrhnjica
- Matricna organizaciona struktura
- Razgranata struktura
- Algoritamske seme
- Reprezentarea algoritmilor in pseudocod
- Introduzione agli algoritmi e strutture dati
- Informaticainscoli.ro
- Algoritmi shqip
- Algoritmi i programiranje
- Dfs grafi
- Algoritmi rubikova kocka
- Algoritmi notevoli
- Sazarotais algoritms