Page 37 - Demo
P. 37
Nxënësi/ja:2.3Le të hedhim një vështrim më të thelluar në konceptin e kohës së ekzekutimit të një programi. Për këtë do të përdorim kombinimin e dy ideve: • Së pari duhet të përcaktojmë sa kohë nevojitet nga algoritmi për të dhënë rezultatin në funksion të madhësisë së hyrjes. Një shembull praktik për ta krahasuar lidhjen e kohës së ekzekutimit me madhësinë e hyrjes është aplikacioni GPS në celularin tuaj. Në qoftë se do të kishte të regjistruara në sistemin e tij vetëm autostradat apo rrugët kombëtare dhe jo rrugët e rrugicat e çdo qyteti, do të jepte një përgjigje më të shpejtë për gjetjen e rrugës për vendmbërritjen e dëshiruar. Koha e ekzekutimit vlerësohet përmes shprehjes T(n), e cila u trajtua në mësimin 2. • Së dyti shohim sa shpejt rritet koha e ekzekutimit me rritjen e madhësisë së hyrjes. Kjo njihet si norma e rritjes e kohës së ekzekutimit. Për thjeshtësi përshkrimi të kësaj madhësie mbahet kufiza e shprehjes T(n), që ka peshën më të madhe dhe hidhen të gjitha kufizat e tjera, që kanë më pak ndikim në normën e rritjes. Për shembull, le të supozojmë se koha e ekzekutimit të një algoritmi jepet me shprehjen T(n) = 6n2 + 100n + 300. Kufiza 6n2 merr vlera shumë më të mëdha se sa kufiza 100n + 300, konkretisht për vlera të n-së më të mëdha se 20. Grafiku në figurën 1 ilustron vlerat e kufizës 6n2kundrejt 100n + 300 për vlera të madhësisë së hyrjes n nga 0 deri në 100.Si përfundim, mund të themi se koha e ekzekutimit të këtij algoritmi rritet sipas rendit n2, duke mos e marrë parasysh as koeficientin 6. Në përgjithësi, nëse koha e ekzekutimit përshkruhet nga shprehja e një polinomi an2 + bn + c, ekziston gjithmonë një vlerë e n-së për të cilën an2është më e madhe se bn + c. E vetmja gjë që ndryshon me ndryshimin e koeficientëve, është vlera e n-së për të cilën kjo ndodh. Duke mos marrë parasysh kufizat më me pak peshë dhe koeficientët, mund të përqendrohemi te norma e rritjes për kohën e ekzekutimit të algoritmit.Aktivitet:Në cilën prej kategorive të kompleksitetit të një algoritmi (konstant, linear, polinomial ose eksponencial) bëjnë pjesë funksionet e mëposhtme, që shprehin kohën e ekzekutimit të një algoritmi:a) 8n b) 10n2 c) (7/2)n d) 1000e) 2 f) (3/2)n g) 2n3 h) cn Gjeni vlerën e parë të n-së për të cilën 2n3 ka rritje më të shpejtë se 10n2 .Fig. 160000 100n + 300 6n2500003000040000200001000000 20 40 60n80 100T(n) kupton që përkufizimi i O-s së madhe përdoret për të përshkruar kompleksitetin e algoritmit.Kompleksiteti i algoritmeve35

