Académique Documents
Professionnel Documents
Culture Documents
Qllimi: Algoritmet dhe karakteristikat themelore te tyre. Strukturat e te dhenave dhe tipet e ndryshme te tyre. Literatura: R. Sedgewick: Algorithms in Java, Part 1-5. Robert LaFore, Data Structures and Algorithms in Java. Sams Publishing, 2003 T. H. Cormen, C. E. Leiserson und R. I. Rivest: Introduction to Algorithms, MIT Press K. Mehlhorn, P. Sanders: Algorithms and Data Structures - The Basic Toolbox. Springer,May 2008
dhnave
Algoritmet d
3. Notacioni O n shembuj konkret. Algoritmet e ndryshme t t njejtit problem dhe eficenca e tyre pr hyrje t ndryshme.
4. Vargjet dhe Listat. Reprezentimi i sekuencave prmes vargjeve (array) dhe listave. Realizimi i strukturave t t dhnave Stack dhe Queue perms sekuencave.
5. Pemt. Pemt binare. Operacionet bazike ne to, kerkimi futja dhe fshirja e te dhenave. 6. Implementimi i struktures fjalor pr Hashing-ut. Hashing with chaining dhe Hashing with linear probing. 7. Analiza dhe shtjellimi i operacioneve bazike n strukturn Heap 8. Rradhitja dhe krkimi. Bubblesort, Selectionsort, Insertsort,Quicksort,Heap Sort, Mergesort. Krkimi skuencial dhe krkimi binar.
dhnave
Paraqitja e algoritmeve
Algoritmet mund te paraqiten me:
Flow Chart Pseudo Code Struktogram
Struktogrami
Kodi
Detyr
Formulo nj algoritm i cili mbledh numrat prej 1 deri n n si
a. Pseudo code b. Flowdiagram
A ka zgjedhje me t thjesht?
Sum=n*(n+1)/2
Detyr
Formulo nj algoritm i cili i mbledh 5 numrat e pare (tek) duke u nise prej numrit 40 te cilet plotepjestohen me 3 ose 5 mirepo jo me 3 dhe 5
Analiza e algoritmeve
Pasi nj algoritm sht ndrtuar pr t zgjidhur nj problem t caktuar, dy pyetje kryesore lindin: 1. 2. E para sht nse algoritmi i zgjedhur gjithmon jep rezultat t saktat t problemit (Korrektsia) E dyta sht se si ky algoritem i menaxhon resurset e kompjuter (memoria, koha) (Efikasiteti)
Prgjigja pr pyetjen e par sht e thjesht, "po" ose "jo", edhe pse zakonisht nuk sht e leht pr t vrtetuar vlefshmrin e ksaj prgjigjen. Pyetjes se dyt mund ti pergjigjemi duke analizuar kompleksitetin n koh dhe n nevoj pr memorie
Analiza e algoritmeve
Atributet e algoritmeve jan
Korrektsia
Algoritmi duhet t jap rezultat t sakt pr t gjitha rastet e mundshme
Efikasiteti Analiza kohore: Sa instruksione algoritmi mund t ekzekutoj? Analiza e hapsires memoruese: Sa hapsire memoruese algorithm ka nevoj ?
Analiza e algoritmeve
Shembull: Rradhitja (Sorting) Hyrja
Sekuence e numrave
Dalja
Permutacioni i sekuences se numrave
Sort
2 5 4 10 7
b1,b2,b3,.,bn
2 4 5 7 10
Korrektsia Pr far do hyrje n algoritem dalja do t jet: b1 < b2 < b3 < . < bn b1, b2, b3, ., bn sht permutacion i a1, a2, a3,.,an
Kompleksiteti kohor
T marrim q funksionet e kohes se dy algoritmeve A dhe B jan gjetur! Pr madhsi hyrse N
Kompleksiteti kohor
Nse njsia pr matjen e kohs se algoritmeve a dhe b sht sec
Kompleksiteti kohor
Kompleksiteti kohor
O notacioni (Big-O Notation)
Le te jete n madhesia hyrese e nje programi Le te jete T(n) funksion qe tregon kohen e ekzekutimit Le te jete f(n) nje funksion tjeter i thjesht
Kompleksiteti kohor
O notacioni (Big-O Notation)
Shembull 1: koha e leximit te te dhenva nga disku eshte 10.000 ms koha e procesimit te seciles prej n te dhenave eshte 10 ms T(n)= (10.000 +10*n ) ms f(n)=n Le te marrim konstanten c = 20 c*f(n)= 20n
Kompleksiteti kohor
O notacioni (Big-O Notation)
Shembull 2: gjeni nese 7n-2 sht ne O(n). Arsyetimi: duhet gjetur nj konstante reale c> 0 dhe nj numr t plot N> = 1 tilla q 7n-2 <= c*n pr do n>=N. Ne kemi zgjedhur c = 7, N = 1 dhe pastaj kemi 7n-2 <7n kur n> = 1 Kshtu 7N-2 sht O (n)
Kompleksiteti kohor
1,00E+10 1,00E+09 1,00E+08 1,00E+07 1,00E+06 1,00E+05 1,00E+04 1,00E+03 1,00E+02 1,00E+01 1,00E+00 1,00E-01 2 4 8 16 32 64 128 256 512 1024
T(n)
Kompleksiteti kohor
Analiza: Line 1: Skip for now Line 2: 1 operation Line 3: 1 operation (initialization) + (n + 1) operations (test) + n operations (increment) = 2n + 2 operations Line 4: 3 arithmetic operations (1 addition + 2 multiplications) executed n times = 3n operations Line 5: 1 operation Numri i prgjithshm i operacioneve = 1 + (2n + 2) 3n + 1 = 5n + 4 operacione
Kodi:
(1) for (int i = 0; i < numLoops; i++) (2) for (int j = 0; j < numLoops; j++) (3) sum += 2; // end nested loop example
Fillojme me inner loop, dhe le te jete n = numLoops Line 2: 1 operation (initialization) + (n + 1) operations (test) + n operations (increment) = 2n + 2 perations Line 3: 1 arithmetic operation (1 addition) executed n times = 1n operations Numri i prgjithshm i operacioneve pr inner loop= (2n + 2) + 1n = 3n + 2 operacione (linja 2 & 3) Kshtu, koha inner loop sht O (n), ose koha lineare. Tash kemi outer loop: Line 1: 1 operation (initialization) + (n + 1) operations (test) + n operations (increment) = 2n + 2 operations Body of outer loop: Total number of operations for inner loop executed n times = (3n + 2) * n = 3n^2 + 2n operations Numri i prgjithshm i operacioneve = 2n + 2 (alineja 1) + 3n ^ 2 + 2n (trupi i lak e jashtme) = 3n ^ 2 + 4n + 2 Kshtu, koha e nested loops sht O (n ^ 2). Koha e tij sht kuadratik (sepse sht ngritur n fuqin 2), kshtu q sht prshkruar si nj Algoritmi kuadratike.
Kompleksiteti kohor
Kompleksiteti kohor
Shembull: Jane dhene N numra te plote, sa kombinime te tresheve japin Shumen zero?
Kompleksiteti kohor
Zgjidhja
Kompleksiteti kohor
Koha e ekzekutimit per madhesi me vlera te ndryshme te hyrjes eshte paraqitur ne table.
Kompleksiteti kohor
Tipet e t dhnave
Tipet Statike
Tipet e thjeshta Integer Char Boolean Pointer/refernce Tipet e strukturume Array String
Tipet Dinamike
Listat e Lidhura (linked list) Tree-s
Tree
Queue
Stack
Vektort/Arrays - n JAVA
Vektoret / Arrays fare tipi i te dhenave (zakonisht) Statik Strukturum Ne java Array eshte objekt. Krijimi i nje array n Java
int[] intArray; // referenc n array intArray = new int[100]; // rezervimi i memorjes pr 100 elemente
Sintakse alternative int intArray[]= new int[100]; int intArray[] ={1,4,5,8,2,4,6,5}; int arrayLength = intArray.length
Vektort/Arrays - n JAVA
asja ne array. Leximi
Vlera = intArray[10]; Percaktimi intArray[10] = Vlera; Detyre. 1. Krijimi i nje array prej 10 elementeve, inicializimi i array me keto vlera {11,5,10,23,44,55,1,6,7,5} 2. Programimi i metodes find(vlera) 3. Programimi i metodes delete(vlera)
Vektort/Arrays - n JAVA
Vektort/Arrays - n JAVA
Vektort/Arrays - n JAVA
Vektort/Arrays - n JAVA
Detyre: Te shkruhet kodi i cili per array {11,5,10,23,44,55,1,6,7,5} e dhene gjene 1. Vleren mesatare te array 2. Vleren maksimale te array 3. Kompjimin e anetarve te array ne nje array tjeter
Vektort/Arrays - n JAVA
Vektort/Arrays - n JAVA
Disavantazhet: 1. Nse nj antare shtohet ose fshihet nga array, antaret e array duhet te zhevndosen 2. N rastin m t keq, pr shtimin ose fshirjen e nj antari n array merr koh n O(n) 3. Array kan gjatsi fikse etj.
Listat Lineare
ka mundet me qen nj list lineare sipas mendimit tuaj? Strukture lineare e t dhnave n formn (e1,e2,,en). e1: elementi i par i lists en: elementi i i n i lists n: gjatsia e lists Shembull: Lista e studentve n baze t emrit.
Listat Lineare
Operacionet kryesore: Add: shton nje element ne liste Set: percakton vleren e nje elementi Remove: largon nje element nga lista Get: lexon vleren e nje elementi IndexOf: lexon indexin e nje elementi Operacionet tjera isEmpty isFull
Listat Lineare
Listat Lineare
Y L K U U
Strukturat e t dhnave
Arrays vs. linked lists (Kompleksiteti Kohore)
Listat Lineare
Implementimi i listes lineare Permes struktures statike Permes struktures dinamike Kompleksiteti kohore Get(indexi) IndexOf(vlera) Remove(vlera)
Listat Lineare
Push X
Push Y
Mult
Push W
Push U
Mult
Add
Listat Lineare
Trees
Trees
Binary Tree
Trees - Java
Trees - Java
Shembull:
Binary Tree
Trees
Trees
Trees
HEAP
Binary Heap
Binary Heap
Binary Heap
Binary Heap
Binary Heap
Binary Heap
Binary Heap
Binary Heap
Binary Heap
Binary Heap
Binary Heap
Binary Heap
Hash Tabelat
Hash Tabelat
Hash Tabelat
ASCII Tabela
Hash Tabelat
Linear Probing
Linear Probing
Sorting (Sortimi)
Sorting
Bubble Sort
Selecti0n Sort
Insertion Sort
Binary Heap
Heap Sort
Heap Sort
Heap Sort
Heap Sort
Heap Sort
Merge Sort
Merge Sort
Merge Sort
Merge Sort
Merge Sort
Merge Sort
Merge Sort
Merge Sort
Merge Sort
Merge Sort
Merge Sort
Merge Sort
Merge Sort
Merge Sort