Professional Documents
Culture Documents
Algo - 03 - Algoritma Iterative PDF
Algo - 03 - Algoritma Iterative PDF
Algoritma iterative
Algoritma iterativë konsiderohen ata algoritma që kanë për bazë strukturat ciklike.
Mbi të gjitha, algortitmat iterative përshtaten mjaft mirë për përpunimin e të dhënave
të vendosura në tabela.
Nga pikpamja funksionale, veprimet me tabelat, mund të ndahen në dy kategori
kryesore:
Në përgjithsi, kërkimi në një listë, për të gjetur një vlerë të caktuar, është i
zakonshëm në jetën e përditshme. Në aplikimet reale, lista e të dhënave përbëhet nga
të ashtuquajturit regjistrimet (records) (p.sh regjistrimet e studentëve), e
implementuar në një ose në disa tabela. Qëllimi i kërkimit është që të gjëndet një
regjistrim i veçantë që plotëson një kriter të caktuar. Kërkimi zakonisht bëhet, sipas
përmbajtjes së një ose disa fushave të regjistrimit, që quhen çelsa (keys), p.sh. kodi i
identitetit apo mbiemri. Gjetja e këtij regjistrimi mundëson aksesin në pjesën tjetër të
regjistrimit, p.sh notat e studentit. Më poshtë do të diskutojmë algoritma kërkimi për
një model më të thjeshtë dhe pikërisht rastin kur listat janë tabela, zakonisht me numra
të plotë ose me të dhena të tipit tekst. Eshtë e qartë që teknikat e kërkimit mund të
përgjithsohen për të dhëna më reale.
Cila është metoda më e thjeshtë për të kërkuar në një listë elementësh?
Kontrollohet elementi i parë, pastaj kontrollohet elementi i dytë dhe vazhdohet në
këtë mënyrë deri sa të gjendet elementi i kërkuar. Në rast se elementi i kërkuar nuk
gjendet atëhere kërkimi quhet i dështuar. Ky lloj kërkimi quhet kërkimi linear (linear
search) ose i quajtur edhe ndryshe kërkimi i njëpasnjëshëm (sequential search).
Së pari do të supozojmë se tek të dhënat fillestare nuk ka dy vlera të njëjta.
Algoritmi 3.1, i quajtur KerkimLinear, kërkon në një tabelë të quajtur a, ekzistencen e
një vlere të quajtur Target. Aplikimi i një cikli While është i përshtatshëm, mbasi
vlera Target e kërkuar mund të jetë kudo në tabelë ose ndoshta edhe mund të mos jetë
fare. Algoritmi duhet të jetë i aftë që të dalë nga cikli sapo vlera Target të gjëndet dhe
të bredhë në të gjithë elementët në se është e domosdoshme. Rezultati që do të
prodhojë algoritmi është ose pozicioni i vlerës së kërkuar ose një mesazh në rast
dështimi.
b) Vlera e kërkuar ndodhet në segmentin [0, n-1]. Zhvendosen nga një pozicion
poshtë të gjitha vlerat duke filluar nga vlera që ndodhej menjëherë pas vlerës së gjetur.
P.sh duke supozuar që vlera e kërkuar ishte në pozicionin 5 atëhere në këtë pozicion
vjen vlera e 6; në vendin e 6-të vjen vlera e 7-të e kështu me rradhë. Zvogëlohet me
një përmasa e tabelës. Algoritmi 3.2, paraqitet një algoritëm që realizon procesin e
fshirjes se një elementi nga një tabelë.
Futja e një elementi në një tabelë të çfardoshme është një proces shumë i thjeshte, ai
kërkon vetëm një hap. Kjo është e vërtetë sepse vlera e re do të futet në vendin e parë
të lirë dhe ky pozicion i lirë është pozicioni pas vlerës të fundit. Do të supozohet se
algoritmi e njeh këtë pozicion. Më pas zmadhohet me një përmasa e tabelës. Problemi
është më i komplikuar kur tabela tashmë është e renditur dhe nuk dëshërojmë që të
prishet renditja nga futja në pozicionin e duhur elementit të ri.
Deri tani shqyrtuam disa algoritma me tabela njëpërmasore (të quajtur vektorë në
matematikë). Le të shohim një algoritëm mbi një tabelë dypërmasore (të quajtura
matrica në matematikë dhe që përdoren gjërësisht sidomos në probleme inxhinierike).
Përsëri nga ana funksionale, veprimet me tabelat me dy përmasa, ndahen në veprime
menaxhimi dhe veprime kërkimi por me nuancat përkatse.