Page 39 - Demo
P. 39


                                    Nxënësi/ja:2.4Problemi i rubrikës “Aktivitet” mund të zgjidhet duke përdorur dy vetitë: b^e = b^x * b^y, ku x+y=e, dhe b^e = (b^a)^b, ku a*b=e. Për vlerat çift të e-së, zgjedhja e vlerave a = 2 dhe b = e/2, duke ruajtur barazimin b^e = (b^2)^(e/2), thuajse përgjysmon numrin e shumëzimeve. Ndërsa për një vlerë tek të e-së, zgjedhja e vlerave x = 1 dhe y=e-1, do të japë një vlerë çift për y dhe kështu mund të përsëritet proçesi sikurse për rastin e eksponentit çift. Paraqitja e funksionit rekursiv jepet si në figurën 1. Kjo zgjidhje siguron kompleksitet më efikas të rendit O(log e).Teknika “Përça e Sundo”. Dy algoritmet e renditjes që kemi parë nga mësimet e kaluara, Selection Sort dhe Insertion Sort, e kanë kompleksitetin në kohë të rendit O(n2). Kjo vjen për shkak të dy cikleve të ndërfutura në secilin prej algoritmeve dhe, për rastin më të keq, kur hyrja është e renditur në të kundërt, të dy ciklet ekzekutohen nga n herë. Por ka algoritme të tjerë renditjeje, ndër të cilët më tipikët janë MergeSort dhe QuickSort, të cilët kanë kompleksitet më efikas, prej O(nlogn), duke përdorur një strategji të njohur si “Përça e Sundo”.Teknika “Përça e Sundo” është një përqasje për zgjidhjen e problemave bazuar në rekursivitet (fig. 2). Ajo përbëhet nga tre hapa:1. Së pari problemet zbërthehen në pjesë më të vogla. Ndarja e problemeve ndodh në mënyrë rekursive, derisa ato të rezultojnë mjaftueshëm të thjeshta për t’u zgjidhur. 2. Nënproblemat e vogla zgjidhen. 3. Zgjidhjet e nënproblemave kombinohen për të dhënë zgjidhjen përfundimtare të problemit të madh. Disa shembuj të tjerë të zbatimit të teknikës “Përça e Sundo”, përveç renditjes, janë kërkimi binar, përmirësime të veprimeve matematikore komplekse si transformimi Furieetj.MergeSort. Le të shohim në veprim algoritmin e renditjes MergeSort, i cili bazohet në teknikën e lartpërmendur “Përça e Sundo”. Supozojmë se duam të rendisim tabelën me n elemente. Algoritmi funksionon duke e ndarë tabelën në dy gjysma  kupton se si teknikat e rekursivitetit dhe teknikat “Përça dhe Sundo” mund të rrisin efikasitetin e algoritmit.Aktivitet: Një nga problemat më të përdorura për të shpjeguar zbatimin e rekursivitetit, është llogaritja e fuqisë së numrit bazë b në fuqi të eksponentit e. Provoni të shkruani pseudokodin për këtë problem me zgjidhje iterative (përsëritëse) dhe rekursive. Vërtetoni se kompleksiteti është i rendit O(e). Si do të ishte zgjidhja më e mirë për llogaritjen e fuqisë dhe a do të kishte përmirësime në kompleksitet?Funksioni fuqia(b, e) IF e == 0RETURN 1 ELSE IF e është çiftRETURN fuqia(b * b, e / 2) ELSERETURN b * fuqia(b * b, (e - 1) / 2) END IFFig. 1Fig. 2nënproblemi nënproblemizgjidhja enënproblemitzgjidhja enënproblemitzgjidhja eproblemitproblemiAlgoritmet e llojit “Përça dhe Sundo”37
                                
   33   34   35   36   37   38   39   40   41   42   43