-
20/06/2012
1
Ushtrime
1
Algoritmike dhe Programim i Avancuar
2
1) Supozojme qe duam te gjenerojme random kombinacionet e n
numrave te pare integer, psh , {4, 3, 1, 5, 2} dhe {3, 1, 4, 2, 5}
jane kombinacione te vlefshme, por {5, 4, 1, 2, 1} nuk eshteeshte
dublikuar numri 1 dhe numri 3 mungon. Supozojmeekzistencen e nje
gjeneratori numrash random rand_int(i, j), qegjeneron numra integer
midis i dhe j me probabilitet te njejte. Po japim me poshte 3
algoritme:
1. A[0] deri ne A[n-1] si me poshte: per te mbushurA[i]
gjenerohen numra random derisa merret nje qe nuk ndodhet ne A[0],
A[1],. A[i-1]
2. Njelloj si algoritmi (1), por mbahet nje vektor shtese
perdorur. Kur nje numerrandom, nr, vendoset ne vektorinA,
njekohesisht caktohet perdorur[nr] = 1. Kjotregon qe duke
mbushurA[i] me numra random mund te testohet me nje hap tevetem nqs
eshte perdorur apo jo me pare ai numer, ne vend te i hapave qe
duheshinne algoritmin e pare.
3. Mbushet vektori ne menyre qe A[i] = i+1for( i=0; i
-
20/06/2012
2
3
a) Tregoni qe te tre algoritmet gjenerojne kombinacione
tevlefshme, dhe qe te gjitha kombinacionet jane njelloj
probabel.
b) Analizoni kompleksitetin e secilit algoritem. c) Analizoni
rastin me te mire dhe ate me te keq.
4
2) Shkruani nje program per te gjetur nqs nje numer pozitiv n
eshtenumer prim.
a) Cili eshte rasti me i keq i ekzekutimit i shprehur me terma
te n?b) Le te jete B numri i biteve ne paraqitjen binare te n. Cila
eshte
vlera e B?c) Duke e shprehur sipas B, cili eshte rasti me i keq
i ekzekutimit te
programit?d) Krahasoni kohet e ekzekutimit per te percaktuar nqs
nje numer
me 20 bit dhe nje me 40, bit jane numra prime.e) Eshte me e
arsyeshme te shprehim kohen e ekzekutimit ne
terma te n apo te B? Pse?
Create PDF files without this message by purchasing novaPDF
printer (http://www.novapdf.com)
-
20/06/2012
3
5
3) Tregoni qe x62 mund te llogaritet me vetem 8 shumezime.
4) Shkruani nje funksion qe percakton nqs ekziston nje numeri
integer i tille qe ai = i ne nje vektor numrash integer a1 < a2
< a3 < . . . < an. Cili eshte kompleksiteti i
algoritmittuaj?
5) Gjeni nje algoritem eficent (duke argumentuar analizen e tij
te kompleksitetit) per:
a) Gjetjen e shumes min te sekuencave ne vektor.b) Gjetjen e
shumes minimum te sekuencave pozitive ne vektor.c) Gjetjen e
prodhimit maksimum te sekuencave ne vektor.
6
6) Pasi jane analizuar programet A dhe B eshte percaktuar
qerastet me te keqija nuk e kalojne numrin e veprimeverespektivisht
15n log2n dhe n2. Pergjigjuni pyetjeve temeposhtme:
a) Cili program garanton kohe me te mire ekzekutimi per vlerate
medha te n (n > 10 000)?
b) Cili program garanton kohe me te mire ekzekutimi per vlerate
vogla te n (n
-
20/06/2012
4
7
7) Nje element ne maxhorance ne nje vektor A me n elemente eshte
ai i cili ndeshet me shume se n/2 here (ekziston max nje i tille).
Psh vektori 3, 3, 4, 2, 4, 4, 2, 4, 4 ka maxhorance elementin 4
ndersa vektori 3, 3, 4, 2, 4, 4, 2, 4 nuk ka maxhorance. Nqsnuk ka
element maxhorance algoritmi juaj duhet ta tregoje kete. Nje
algoritem qe e zgjidh kete problem eshte si vijon:Hapi i pare:
gjendet nje kandidat per element ne maxhorance (pjesa me e
veshtire). Kykandidat eshte elementi i vetem qe mund te jete ne
maxhorance.Hapi i dyte: tregohet qe kandidati eshte aktualisht ne
maxhorance.
Ky eshte nje kerkim sekuencial ne vektor. Per te gjetur nje
kandidat ne vektorin A, krijoni nje vektor tjeter B. Pas kesaj
krahasoni A1 me A2. Nqs jane te njejte, ruani njerenprej tyre ne
vektorin B, perndryshe mos beni asgje. Pastaj krahasoni A3 me A4.
Perserinqs jane te barabarte, shtoni njeren prej tyre ne B,
perndryshe mos beni asgje. Vazhdonine kete menyre derisa eshte
lexuar I gjithe vektori. Pastaj ne menyre rekursive gjeni
njekandidat per B. Ky do te jete eshte kandidati per A. Pse?
a) Si perfundon thirrja rekursive?b) Si trajtohet rasti kur n
eshte tek?c) Cili eshte kompleksiteti i algoritmit?d) Si mund te
menjanojme perdorimin e nje vektori shtese B?e) Shkruani nje
funksion qe llogarit elementin ne maxhorance.
8
8) Ne funksionin e meposhte te kerkimit binar nqs shprehja ne
rreshtin 5 do te zevendesohej me majte = mes, cfare do te ndodhte
ne ekzekutimin e funksionit? Do te ishte funksioni i sakte
gjithsesi?
int kerkimBinar( int a[ ], int x, int n )
{
int majte, mes, djathte;
/*1*/ majte = 0; djathte = n - 1;
/*2*/ while(majte
-
20/06/2012
5
9
9) Jepet vektoriT[n]. Ndertoni nje funksion rekursiv qe
teparaqese ne ekran te gjitha dyshet e mundshme teelementeve te
vektoritT. Psh T = {1,2,3,4} dyshet e mundshme jane: {1,2} {1,3}
{1,4} {2,3} {2,4} {3,4}
10
10) Nje liste lineare permban vetem 3 elemente me vlerat 100,
200, 45. K eshte shenjuesi i kokes se listes. N dhe P jane variabla
te tipitshenjues ne elemente te listes. Te shpjegohet rezultati
iinstruksioneve te meposhtme.
a) N = K -> next; N->vlere = 350;b) P=K->next; N =
P->next;
P->next=P->next; delete(N);c) N=K; K = new node;
K->vlere = 700; K->next = N;
Create PDF files without this message by purchasing novaPDF
printer (http://www.novapdf.com)
-
20/06/2012
6
11
11) Te ndertohet nje funksion qe gjen shumen e elementeve te
njeliste.
12) Te ndertohet nje funksion qe gjen elementin me te madh te
njeliste.
13) Te pershtatet funksioni i mesiperm qe te gjeje dy elementet
me temedhenj te nje liste (lista te bridhet vetem nje here).
14) Jepet nje pointer P mbi nje element te listes lineare L,
njedrejtimore. Te shkruhet nje funksion qe heq nga kjo liste:
a) Elementin pasardhes atij ku shenjon pointeri Pb) Elementin e
treguar nga pointeri P
12
15) Te shkruhet nje funksion i cili merr si parameter dy lista
L1 dhe L2 dhe i bashkon ato duke i vendosur elementet e listesL2
pas atyre te listes L1.
16) Te shkruhet nje funksion qe merr nje liste njedrejtimore L
dhe e ndan ate ne dy lista L1 dhe L2. Ndarja behet pas elementit X
te dhene qe ndodhet ne listen L.
17) Te shkruhet nje funksion qe largon nga lista e
lidhurnjedrejtimore L te gjithe elementet pozitive te saj.
Create PDF files without this message by purchasing novaPDF
printer (http://www.novapdf.com)
-
20/06/2012
7
13
18) Jepet lista e lidhur njedrejtimore L e renditur ne rend
rrites. Te shkruhet nje funksion qe shton ne kete liste elementin X
duke respektuar renditjen.
19) Jepen dy liste te lidhura njedrejtimore L1 dhe L2. Te
shkruhetnje funskion i cili krijon listen L ne te cilen elementet e
listaveL1 dhe L2 vendosen ne menyre te nderthurur. Ne castin
kurelementet e nje liste mbarohen te vazhdoje vendosja e elementeve
te mbetur nga lista tjeter.
14
20) Te ndertohet nje funksion qe numeron kulmet e nje
pemebinare.
21) Per nje vektor heap, te dhene te shkruhet nje funksion
qevecon nenpemen e majte te pemes se paraqitur me ane teketij
vektori.
22) A ekziston peme binare qe te kete redhet e
bredhjesnderrendore dhe pasrendore si me poshte:
Nderrendore CADB Pasrendore CBAD
Create PDF files without this message by purchasing novaPDF
printer (http://www.novapdf.com)
-
20/06/2012
8
15
23) Shkruani nje funksion per zgjedhjen e pivot ne
algoritminquicksort si:
a) Elementi i pare i vektorit.b) Me i madhi midis dy elementeve
te pare te ndryshem nga njeri
tjetrin.c) Nje element random.d) Mesatarja e gjithe elementeve
ne vektor.
Cila do te ishte zgjedhja me e mire per pivot? Pse?
16
24) Pse algoritmi bubble sort eshte me i shpejte per input
terenditur paraprakisht?
25) Pse selection sort nuk ndikohet nga fakti qe inputi
eshteparaprakisht i renditur?
26) Pse insertion sort ekzekutohet me shpejt ne input
paraprakisht te renditur?
27) Pse merge sort ekzekutohet me shpejt ne input paraprakisht
te renditur?
28) Pse quicksort eshte me i ngadalte ne input paraprakisht
terenditur?
Create PDF files without this message by purchasing novaPDF
printer (http://www.novapdf.com)
-
20/06/2012
9
17
29) Jepet metoda e meposhtme e fshirjes nga heap?
void zhvendosPoshte( int bosh) { int child; int tmp =
array[bosh]; for( ; bosh * 2
-
20/06/2012
10
19
30) Ndertoni nje funksion qe merr si input nje tekst dhe e
printonate te kthyer ne te kundert. Perdorni nje stive
ndihmese.
31) Ndertoni nje funksion kerkoNeListe qe kerkon ne
menyrerekursive nje vlere te caktuar ne nje liste te lidhur
njedrejtimore. Funksioni duhet te ktheje nje pointer ne element nqs
ai gjendetdhe NULL nqe elementi nuk gjendet ne liste.
20
32) Ndertoni nje funksionin rekursiv afishoPeme qe afishon nje
pemebinare ne ekran. Psh pema te meposhtme:
Duhet te afishohet si:
Funksioni duhet te marre si parametra nje pointer ne rrenjen e
pemes dhe nje integer nrHapesira qe do te mbaje nr. e hapesiraveqe
paraprijne vleren qe do te afishohet (ky variabel do te fillojeme
vleren fillestare zero mqs rrenja afishohet direkt ne te majtete
ekranit).
Create PDF files without this message by purchasing novaPDF
printer (http://www.novapdf.com)
-
20/06/2012
11
21
Algoritmi
Per aq kohe sa pointeri ne nyjen korente nuk eshte NULL. Therrit
ne menyre rekursive afishoPeme me parametra nenpemen e
djathte dhe nrHapesira + 5 Perdorni nje instruksion per te
numeruar nga 1 ne nrHapesira dhe
afishoni hapesirat. Afishoni vleren e nyjes korente. Vendosni
pointerin e nyjes korente ne nenpemen e majte te nyjes
korente. Rrisni nrHapesira me 5.
22
33) Ndertoni nje algoritem eficent NdajCiftTek(A) qe kthen
vektorin A qepermban ne fillim numrat tek te pasuar nga numrat
cift. Psh per input vektorin A = 7, 17, 74, 21, 7, 9, 26, 10
funksioni do te ktheje sioutput vektorin A = 74, 10, 26, 17, 7, 21,
9, 7. Funksioni te perdore ekstra nje madhesi konstante kujtese te
pavarur nganumri i elementeve te A, pra te mos perdoret vektor
temporar tjeter. Sa eshte kompleksiteti i algoritmit tuaj? A mund
ta permiresoni algoritmin tuajne menyre qe te kete kompleksitet
linear?
34) Jepet vektori A = 4, 33, 6, 90, 33, 32, 31, 91, 90, 89, 50,
33(a) A eshte A nje min-heap? Argumentoni pergjigjen duke
shpjeguarkarakteristikat e min-heap.
(b)Nqs A eshte nje min-heap, hiqni vleren min te vektorit dhe
riorganizonine menyre qe A te mbetet nje min-heap. Tregoni cdo
iteracion te min-heapify.
(c) Nqs A nuk eshte nje min heap, aplikoni algoritmin qe e kthen
ate ne njemin-heap. Tregoni cdo iteracion te min-heapify.
Create PDF files without this message by purchasing novaPDF
printer (http://www.novapdf.com)
-
20/06/2012
12
Ushtrime Permbledhese20/06/2012
23
Create PDF files without this message by purchasing novaPDF
printer (http://www.novapdf.com)