Download presentation
Presentation is loading. Please wait.
1
Algoritmet e Sortimit
2
Sortimi me insertim Sortimi me insertim eshte nje algoritem efikas per te renditur nje numer te vogel elementesh. Sortimi me insertim vepron ne menyre te ngjashme me menyren se si shume njerez zakonisht i rendisin letrat: Fillojme me doren e majte boshe dhe letrat jane te permbysura mbi tavoline. Me pas ne heqim nje leter nga tavolina dhe e vendosim ate ne pozicionin e duhur ne doren e majte. Per te gjetur pozicionin e duhur per nje leter, ne e krahasojme ate me secilen prej letrave qe i kemi ne dore, nga e djathta ne te majte. Ne çdo moment, letrat ne doren e majte jane te renditura.
3
Sortimi me insertim void InsertionSort(iny A[], int size){ int i, j; int temp; count=0; for(i=1; i<size; i++) { temp = A[i]; for(j=i; j>0 && A[j-1]>temp; j--){ A[j]=A[j-1]; count++; } A[j]=temp; cout<<"The number of operations (InsertionSort): "<<count<<"\n";
4
Perparesite: Implementim i thjeshte Efikas per data sete te vogla
Me efikas ne praktike se algoritmet tjera qe kane kohe egzekutimi O(n2)) sic jane selection sort dhe bubble sort. Eshte adaptiv pra efikas per data sete qe jane deri diku te sortuara ku cdo elemenet nuk eshte me larg se k pozicione Stabil , qe dmth nuk e nderron rendin relativ te elementeve me celes te njejte In-place qe dmth kerkon vetem nje sasi konstante te memories shtese Online; qe dmth se e sorton listen ashtu sic e pranon
5
Shembull 1: Sortimi me insertim
6
Shembull 2: Sortimi me insertim
Shembull mbi renditjen me nderfutje 9 4 3 7 6 5 8 Bashkesia origjinale me 7 numra te plote pozitive. Pjesa e hijezuar e renditur dhe perpiqemi te insertojme vleren 3 Pjesa e hijezuar e renditur dhe perpiqemi teinsertojme vleren 7 Pjesa e hijezuar e renditur dhe perpiqemi te nderfusim vleren 6 Pjesa e hijezuar e renditur dhe perpiqemi te nderfusim vleren 5 Pjesa e hijezuar e renditur dhe perpiqemi te nderfusim vleren 8 Bashkesia e vlerave e renditur ne rendin rrites
7
Si e analizojme kohen e ekzekutimit te nje algoritmi?
Koha e ekzekutimit te algoritmit varet nga inputi. • Renditja e 1000 numrave kerkon me shume kohe se renditja e 3 numrave. • Nje algoritem renditjeje mund te kerkoje sasi kohe te ndryshme mbi dy inpute te se njejtes madhesi. Psh: do te shohim Sortimi me insertim kerkon me pak kohe per te renditur n elemente kur ato jane qe ne fillim te renditur, sesa kur ato jane te renditur ne rendin e kundert. Rasti me i mire i sortimit me insertim: vektori fillestar eshte i renditur Rasti me i keq i sortimit me insertim: vektori fillestar eshte i renditur ne rendin e kundert
8
Madhesia e inputit Madhesia e inputit: Varet nga problemi qe po studiohet. • Zakonisht eshte numri i elementeve ne input. Si psh: madhesia n e vektorit qe po renditet. • Por mund te jete edhe diçka tjeter. Psh: ne rastin e shumezimit te dy numrave te plote, mund te jete numri total i biteve ne te dy numrat. • Mund te pershkruhet nga me shume se nje numer. Psh, koha e ekzekutimit e algoritmeve mbi grafet, zakonisht shprehet ne varesi te numrit te kulmeve dhe numrit te harqeve te grafit qe jepet si input.
9
Koha e ekzekutimit Per nje input te caktuar, koha e ekzekutimit, eshte numri i veprimeve primitive (hapave) qe ekzekutohen. • Na duhet te percaktojme hapat qe te jene te pavarur nga lloji i makines. • Verejme qe çdo rresht i kodit kerkon nje sasi konstante kohe. • Nje rresht mund te kerkoje sasi te ndryshme kohe ne krahasim me nje rresht tjeter, por çdo ekzekutim i rreshtit i kerkon te njejten sasi kohe . • Kjo eshte e vertete nese supozojme se rreshti perbehet vetem nga veprime primitive. Nese rreshti perbehet nga nje thirrje procedure, atehere thirrja e procedures kerkon kohe konstante, por ekzekutimi i saj mund te mos kerkoje nje kohe konstante. Pra nese rreshti nuk ka veprime primitive, atehere ai mund te kerkoje me teper se koha konstante.
10
Sortimi me bubbles (flluska)
Metoda e flluskave bazohet, edhe kjo, ne ndarjen e bashkesise se vlerave ne dy nenbashkesi nga te cilat ajo e djathta eshte e renditur dhe hap pas hapi asaj i bashkangjitet majtas elementi me i madh i nenbashkesise se majte. Kjo renditje shkemben ne menyre te perseritur elementet fqinje qe nuk jane te renditur.
11
void BoubleSort(ElementType Array[], int n){
int temp; count=0; for(int i=0; i<n-1;i++){ for(int j=i;j<n;j++){ count++; if(Array[i]>Array[j]){ temp=Array[i]; Array[i]=Array[j]; Array[j]=temp; }
12
Bubble sort Eshte algoritem krahasimi, ashtu qe elementet me te vogla ‘bubble’ ne maje te listes. Edhe pse algoritmi eshte i thjeshte, eshte shume i ngadalshem dhe jopraktik per shumicen e problemeve , edhe me i keq se insertion sort.
13
Shembull – sortimi me bubbles
Shembull mbi renditjen me flluska 9 4 3 7 6 5 8 Bashkesia origjinale me 7 numra te plote pozitive. Pjesa e hijezuar e renditur dhe perpiqemi te bashkangjisim vleren 8 Pjesa e hijezuar e renditur dhe perpiqemi te bashkangjisim vleren 7 Pjesa e hijezuar e renditur dhe perpiqemi te bashkangjisim vleren 6 Pjesa e hijezuar e renditur dhe perpiqemi te bashkangjisim vleren 5 Pjesa e hijezuar e renditur dhe perpiqemi te bashkangjisim vleren 4 Bashkesia e vlerave e renditur ne rendin rrites
14
sortimi me bubbles Cikli i pare ne algoritem realizon bredhjen neper bashkesi. Cikli i dyte zhvendos, me ane te shkembimeve te njepasnjeshme (nga ku emri flluska), elementin me te madh te nenbashkesise se parenditur te majte deri tek nje element perpara nenbashkesise se renditur te djathte
15
Analiza - sortimi me bubbles
Duke shfrytezuar vetite e njohura te kompleksitetit arrijme ne konkluzionin se algoritmi ne shqyrtim eshte i rendit O(n2).
16
Krahasimi: Sortimi me insertim dhe sortimi me bubbles
Nga analiza e efikasitetit te dy algoritmeve qe sapo pame, veme re se algoritmi i renditjes mebubbles eshte i te njejtit rend me ate te sortimit me insertim. Sidoqofte, kjo nuk do te thote se per ne ata jane njelloj te preferueshem. Ne algoritmin e renditjes me bubble numri i ekzekutimeve eshte i parapercaktuar, ndersa ne algoritmin e sortimit me insertim numri i ekzekutimeve eshte ne varesi te vendosjes se elementeve. Si konkluzion, numri i ekzekutimeve ne algoritmin e sortimit me insertim eshte <= me ate te ekzekutimeve ne algoritmin e renditjes me flluska por rendi i tyre eshte i njejte.
17
Shembuj te algoritmeve te sortimit
Shembuj te algoritmeve te sortimit ne menyre te animuar i gjeni ne adresen e meposhtme:
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.