19
Universiteti i Prishtinës Fakulteti i Inxhinierisë Elektrike dhe Kompjuterike Algoritmet dhe struktura e dhënave Vehbi Neziri FIEK, Prishtinë 2015

Algoritmet dhe struktura e të dhënave - Vehbi · PDF file• Në shkenca kompjuterike, kjo fjalë i referohet një metode t ... • Analiza e algoritmeve është pjesë e shkencave

Embed Size (px)

Citation preview

Page 1: Algoritmet dhe struktura e të dhënave - Vehbi · PDF file• Në shkenca kompjuterike, kjo fjalë i referohet një metode t ... • Analiza e algoritmeve është pjesë e shkencave

Universiteti i Prishtinës

Fakulteti i Inxhinierisë Elektrike dhe Kompjuterike

Algoritmet dhe struktura e të dhënave

Vehbi Neziri

FIEK, Prishtinë 2015

Page 2: Algoritmet dhe struktura e të dhënave - Vehbi · PDF file• Në shkenca kompjuterike, kjo fjalë i referohet një metode t ... • Analiza e algoritmeve është pjesë e shkencave

©vehbineziri.com 2Prishtinë, 2015

Java 5

• Algoritmet

• Hyrje

• Klasifikimi i algoritmeve

• Analiza e algoritmeve

• Big-O notacioni

• Rastet e analizave

Page 3: Algoritmet dhe struktura e të dhënave - Vehbi · PDF file• Në shkenca kompjuterike, kjo fjalë i referohet një metode t ... • Analiza e algoritmeve është pjesë e shkencave

Hyrje

©vehbineziri.com 3Prishtinë, 2015

• Algoritmi është sekuencë e caktuar e hapave me udhëzime tëqarta për zgjidhjen e një problemi.

• Në shkenca kompjuterike, kjo fjalë i referohet një metode tëveçantë të përdorur nga kompjuteri për zgjidhjen e njëproblemi.

• Problemet mund të jenë të formave të ndryshme• Biznesore (p.sh alokimi i fuqisë punëtore për të maksimizuar fitimin)

• Jetësore (p.sh. Je i uritur. Si të blihet një picë?)

• Shkollore (p.sh sortimi i numrave)

Page 4: Algoritmet dhe struktura e të dhënave - Vehbi · PDF file• Në shkenca kompjuterike, kjo fjalë i referohet një metode t ... • Analiza e algoritmeve është pjesë e shkencave

Klasifikimi i algoritmeve

©vehbineziri.com 4Prishtinë, 2015

• Algoritmet që përdorin një metodë të ngjashme për zgjidhjene problemeve mund të grupohen së bashku.

• Qëllimi nuk është për klasifikuar një algoritëm si i një apotjetër lloji, por për të vënë në pah mënyrat e ndryshme tëqasjes ndaj një problemi

• Disa nga tipat e algoritmeve që do merren në konsideratëjanë:• Simple recursive

• Backtracking

• Divide and conquer

• Greedy

Page 5: Algoritmet dhe struktura e të dhënave - Vehbi · PDF file• Në shkenca kompjuterike, kjo fjalë i referohet një metode t ... • Analiza e algoritmeve është pjesë e shkencave

Analiza e algoritmeve

©vehbineziri.com 5Prishtinë, 2015

• Algoritmet zakonisht paraqiten me pseudo-kod: kod i ngjashëmsi gjuhët programuese, p.sh C, C++, C# etj.

• Analiza e algoritmeve është pjesë e shkencave kompjuterike ecila ofron mjete për të vlerësuar dhe analizuar resurset enevojshme dhe efikasitetin e një algoritmi për zgjidhjen eproblemit të dhënë.

• Zakonisht janë dy aspekte të analizës së algoritmeve• Koha

• Hapësira

Page 6: Algoritmet dhe struktura e të dhënave - Vehbi · PDF file• Në shkenca kompjuterike, kjo fjalë i referohet një metode t ... • Analiza e algoritmeve është pjesë e shkencave

Elementet e zakonshme të algoritmeve

©vehbineziri.com 6Prishtinë, 2015

EMRI Emri formal i algoritmit

TË DHËNAT Emrat e vlerave të dhëna për problemin

REZULTATET Emrat e vlerave dalëse për problemin

NDËRMJETËSUESIT Emrat e variablave ndërmjetësuese që përdoren në algoritëm

DEFINIMI Definimi i algoritmit, emri, të dhënat dhe rezultatet

METODA Sekuenca hap pas hapi e deklaratave për zgjidhjen e problemit

Page 7: Algoritmet dhe struktura e të dhënave - Vehbi · PDF file• Në shkenca kompjuterike, kjo fjalë i referohet një metode t ... • Analiza e algoritmeve është pjesë e shkencave

Pseudo kodi për një algoritëm të thjeshtë

©vehbineziri.com 7Prishtinë, 2015

kushti?

Hapi B

truefalse

Hapi A

• Kushti if.

• Sintaksa

nëse(kushti)

(Hapi A)

përndryshe

(Hapi B)

fundi nëse

Page 8: Algoritmet dhe struktura e të dhënave - Vehbi · PDF file• Në shkenca kompjuterike, kjo fjalë i referohet një metode t ... • Analiza e algoritmeve është pjesë e shkencave

Shembull 5.1

©vehbineziri.com 8Prishtinë, 2015

o Të analizohet algoritmi për gjetjen eshumës së tre numrave të dhënë: • EMRI:

• TË DHËNAT:

• REZULTATET:

• DEFINIMI:

• METODA:

• Merr N1• Merr N2• Merr N3

• Gjej TOTALI=N1+N2+N3

• Kthe TOTALIN

SHUMA3

N1, N2, N3

TOTALI

TOTALI=SHUMA3(N1,N2,N3)

Page 9: Algoritmet dhe struktura e të dhënave - Vehbi · PDF file• Në shkenca kompjuterike, kjo fjalë i referohet një metode t ... • Analiza e algoritmeve është pjesë e shkencave

Big O (Kufiri i epërm)

©vehbineziri.com 9Prishtinë, 2015

• f(n) = O(g(n)) , nëse ekzistojnë konstantet pozitive n0 dhe c tëtilla që në të djathtë të n0, vlera e f(n) gjithmonë shtrihet nëncg(n).

Page 10: Algoritmet dhe struktura e të dhënave - Vehbi · PDF file• Në shkenca kompjuterike, kjo fjalë i referohet një metode t ... • Analiza e algoritmeve është pjesë e shkencave

Notacioni Θ (rendi i njëjtë)

©vehbineziri.com 10Prishtinë, 2015

• f(n) = Θ(g(n)), nëse ekzistojnë konstantet pozitive n0, c1 dhe c2

të tilla që në të djathtë të n0, vlera e f(n) gjithmonë shtrihetnë mes të c1cg(n) dhe c1cg(n) .

Page 11: Algoritmet dhe struktura e të dhënave - Vehbi · PDF file• Në shkenca kompjuterike, kjo fjalë i referohet një metode t ... • Analiza e algoritmeve është pjesë e shkencave

Notacioni Ω (Kufiri i poshtëm)

©vehbineziri.com 11Prishtinë, 2015

• f(n) = Ω(g(n)), nëse ekzistojnë konstantet pozitive n0 dhe c tëtilla që në të djathtë të n0, vlera e f(n) gjithmonë shtrihet nëose mbi ccg(n).

Page 12: Algoritmet dhe struktura e të dhënave - Vehbi · PDF file• Në shkenca kompjuterike, kjo fjalë i referohet një metode t ... • Analiza e algoritmeve është pjesë e shkencave

Shembull 5.2

©vehbineziri.com 12Prishtinë, 2015

o Të analizohet kodi i mëposhtëm dhetë tregohet sa është koha eekzekutimit për vlera të ndryshme tëm?

int m = ?;int sum = ?;for (int i = 1; i <= m; i++)

for (int j = 1; j <= m; j++)sum++;

Page 13: Algoritmet dhe struktura e të dhënave - Vehbi · PDF file• Në shkenca kompjuterike, kjo fjalë i referohet një metode t ... • Analiza e algoritmeve është pjesë e shkencave

Efikasiteti i algoritmit

©vehbineziri.com 13Prishtinë, 2015

• O(1) – koha konstante: algoritëm me numër të njëjtë tëhapave, pavarësisht nga madhësia e problemit/detyrës.

• O(n) – koha lineare: algoritëm që kërkon një numër të hapaveproporcional me madhësinë e problemit/detyrës.

• O(n2) – koha kuadratike: algoritëm ku numri i operacioneveështë proporcional me katrorin e madhësinë sëdetyrës/problemit.

• O(logn) – koha logaritmike: p.sh kërkimi binar në një listë tërenditur të n elementeve.

• O(an) – koha logaritmike: p.sh kërkimi binar në një listë tërenditur të n elementeve.

Page 14: Algoritmet dhe struktura e të dhënave - Vehbi · PDF file• Në shkenca kompjuterike, kjo fjalë i referohet një metode t ... • Analiza e algoritmeve është pjesë e shkencave

Krahasimi i rritjes së normave

©vehbineziri.com 14Prishtinë, 2015

Page 15: Algoritmet dhe struktura e të dhënave - Vehbi · PDF file• Në shkenca kompjuterike, kjo fjalë i referohet një metode t ... • Analiza e algoritmeve është pjesë e shkencave

Rastet e analizave

©vehbineziri.com 15Prishtinë, 2015

• Rasti-më i keq (Worst-case Complexity) - Është funksion ipërcaktuar nga numri maksimal i operacioneve të kryeranëpër të gjitha instancat e madhësisë m.

• Rasti-mesatar (Average-case Complexity) - Është funksion ipërcaktuar nga numri mesatar i operacioneve të kryera nëpërtë gjitha instancat e madhësisë m.

• Rastit-më i mirë (Best-case Complexity) - Është funksion ipërcaktuar nga numri minimal i operacioneve të kryera nëpërtë gjitha instancat e madhësisë m

Page 16: Algoritmet dhe struktura e të dhënave - Vehbi · PDF file• Në shkenca kompjuterike, kjo fjalë i referohet një metode t ... • Analiza e algoritmeve është pjesë e shkencave

Shembull 5.3

©vehbineziri.com 16Prishtinë, 2015

o Të shkruhet programi i cili përmesfunksionit numero_rreshta(charstr[], int m) i numëron sa rreshta tëri janë në vektorin str. Po ashtu tëanalizohet dhe të tregohetkompleksiteti i algoritmit.

Page 17: Algoritmet dhe struktura e të dhënave - Vehbi · PDF file• Në shkenca kompjuterike, kjo fjalë i referohet një metode t ... • Analiza e algoritmeve është pjesë e shkencave

Shembull 5.4

©vehbineziri.com 17Prishtinë, 2015

o Sa here do të ekzekutohet komandasum=sum +array[i][j].

• Do të ekzekutohet 15 herë

Page 18: Algoritmet dhe struktura e të dhënave - Vehbi · PDF file• Në shkenca kompjuterike, kjo fjalë i referohet një metode t ... • Analiza e algoritmeve është pjesë e shkencave

Shembull 5.5

©vehbineziri.com 18Prishtinë, 2015

o Të analizohet programi i mëposhtëmdhe të tregohet sa herë do të thirretfunksioni Alfa.

• Do të thirret herë

Page 19: Algoritmet dhe struktura e të dhënave - Vehbi · PDF file• Në shkenca kompjuterike, kjo fjalë i referohet një metode t ... • Analiza e algoritmeve është pjesë e shkencave

©vehbineziri.com 19Prishtinë, 2015