Basic HTML Version

|  | Table of Contents |  | View Full Version

Page 38 - Demo
P. 38

                                        TEMATIKA 2 ALGORITMIKA DHE PROGRAMIMIFig. 2Për të karakterizuar normën e rritjes në rastin më të keq përdoret përkufizimi O e madhe(Big-O notation). Marrim një rast konkret: algoritmi i kërkimit binar, i cili funksionon duke e ndarë tabelën me n numra në gjysmë, në mënyrë rekursive, derisa të gjendet numri i kërkuar ose tabela mbetet me një element dhe elementi nuk u gjet. Koha e ekzekutimit në rastin më të keq, kur elementi nuk gjendet, llogaritet të jetë log2n, që d.m.th. koha e ekzekutimit të kërkimit binar nuk mund të ndodhë kurrë të ketë një normë rritje më të shpejtë se log2n, por mund të jetë edhe më e ngadaltë (që përkthehet në kohë më të shkurtër ekzekutimi). Ndaj kërkimi binar konsiderohet të ketë një kohë ekzekutimi të rendit O(log2n).Nëse koha e ekzekutimit të algoritmit është O(f(n)), atëherë për një n mjaftueshëm të madhe, koha e ekzekutimit është e shumta k*f(n), ku k është një konstante e caktuar. Koncepti është i ilustruar në figurën 2, ku grafiku i kuq paraqet kohën e ekzekutimit të f(n)-së ndërsa k*f(n)shpreh grafikun e funksionit që shërben si kufi i sipërm për f(n).PërkufizimLe të jenë f(n) dhe g(n) dy funksione.Përkufizim i përgjithshëm: f(n) ka kompleksitet të rendit O(g(n)), n.q.s. ekziston një numër i plotë pozitiv c dhe një n0 e tillë që f(n)<=c*g(n) për të gjithë numrat e plotë pozitivë n>=n0. koha e ekzekutuark • f(n)Pra, me fjalë të tjera, përkufizimi i O-së së madhe përshkruan funksionin që shërben si kufi i sipërm i normës së rritjes për kohën e ekzekutimit të algoritmit. Në tabelën e mëposhtme përmenden disa shembuj:Funksioni f(n) 7n-2 3n3 + 20n2 + 5 3 logn + log logn n2 + 2n + 2Kompleksiteti i rendit: O(n) O(n3) O(logn) O(n2)PROVO VETEN1. Rendit funksionet e mëposhtëm sipas normës së rritjes nga më e ngadalta te më e shpejta.2n n2 n n3 (3/2)n 12. Rendit funksionet e mëposhtëm sipas normës së rritjes nga më e shpejta te më e ngadalta.6n3 nlog6n 4n 8n2 log2nnlog2n log8n 64 82n 8n3. Jepen shprehjet për kohën e ekzekutimit T(n) të algoritmit. Trego kufizën dominuese që ka rritjen më të shpejtë dhe kompleksitetin e algoritmit sipas përkufizimit të O-së së madhe.5 + 0.001n3 + 0.025n 0.3n + 5n1.5 + 2.5n1.75nlog3n + nlog2n 100n + 0.01n2 36

| 32 33 34 35 36 37 38 39 40 41 42 |