Documente Academic
Documente Profesional
Documente Cultură
Rezumat
Proiectul acesta este despre analiza unor metode de
sortare s, i compararea timpurilor de execut, ie pentru
diferite seturi de date, toate acestea fiind implementate in
Python.
1
Cuprins
Contents
1 Introducere 3
2 Metode de sortari 4
2.1 BubbleSort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 InsertionSort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 SelectionSort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4 QuickSort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5 MergeSort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3 Concluzii 10
3.1 BubbleSort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 InsertionSort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3 SelectionSort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.4 QuickSort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.5 MergeSort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4 Bibliografie 11
2
1 Introducere
a) Cum au fost analizate
b) Implementare in Python
Inceput:
Final:
3
2 Metode de sortari
2.1 BubbleSort
1.Cum funct, ionează BubbleSort?
Prin această metodă se parcurge vectorul s, i se compară fiecare element cu
succesorul său. Dacă nu sunt ı̂n ordine cele două elemente se interschimbă
ı̂ntre ele.
Vectorul se parcurge de mai multe ori, până când la o parcurgere completă
nu se mai execută nicio interschimbare ı̂ntre elemente.
2.Implementare in Python
3.Performanta
4.Complexitate
Metoda bulelor are o complexitate de O(n**2), iar timpul mediu este tot
O(n**2).
4
2.2 InsertionSort
1.Cum funct, ionează InsertionSort?
În tehnica de sortare prin insert, ie, pornim de la al doilea element s, i ı̂l
comparăm cu primul element s, i ı̂l punem ı̂ntr-un loc adecvat.
Apoi efectuăm acest proces pentru elementele ulterioare. Comparăm fiecare
element cu toate elementele sale anterioare s, i punem sau inserăm elementul ı̂n
pozit, ia corectă.
2.Implementare in Python
3.Performanta
4.Complexitate
5
2.3 SelectionSort
1.Cum funct, ionează SelectionSort?
Sortarea prin select, ia minimului (sau maximului) este metoda de ordonare
prin selectarea unui element s, i plasarea lui pe pozit, ia sa finală direct ı̂n tabloul
A. De exemplu, ı̂n caz de ordonare crescătoare, pornind de la primul element
se caută valoarea minimă din tablou.
Această se aşează pe prima pozit, ie printr-o interschimbare ı̂ntre elementul
de pe prima pozit, ie s, i elementul minim de pe pozit, ia k.
2.Implementare in Python
3.Performanta
4.Complexitate
6
2.4 QuickSort
1.Cum funct, ionează QuickSort?
Sortarea rapidă se realizează ı̂ntr-o funct, ie care, aplicată unui s, ir de numere,
pozit, ionează un element din s, ir, pivot, pe pozit, ia finală, pe care se va afla
acesta ı̂n s, irul sortat, s, i deplasează elementele din s, ir mai mici decât acesta ı̂n
fata sa, iar pe cele mai mari după el.
Procedeul se reia pentru fiecare din cele două subs, iruri care au rămas
neordonate
2.Implementare in Python
3.Performanta
7
2.5 MergeSort
1.Cum funct, ionează MergeSort?
Definim interclasarea a două liste sortate ca fiind operat, ia prin care obt, inem
o listă sortată ce cont, ine toate elementele listelor de intrare.
Sortarea prin interclasare utilizează metoda Divide et Impera:
-se ı̂mparte vectorul ı̂n secvent, e din ce ı̂n ce mai mici, astfel ı̂ncât fiecare
secvent, ă să fie us, or ordonată la un moment dat, apoi interclasată cu o altă
secvent, ă din vector, de asemenea ordonată.
2.Implementare in Python
8
3.Performanta
4.Complexitate
9
3 Concluzii
3.1 BubbleSort
Bubble Sort este un algoritm de sortare lent s, i ineficient,
deoarece necesită mai multe treceri prin lista pentru a sorta
elementele .De aceea BubbleSort – ul este folosit doar in scopuri
educat, ionale.
3.2 InsertionSort
Insertion Sort este un algoritm de sortare eficient pentru liste
mici sau listele aproape sortate. In plus , putem vedea timpi mult
mai buni pentru vectori mai mari de sortat fata de BubbleSort.
Cu toate acestea, Insertion Sort nu este eficient pentru liste mari
sau foarte dezordonate s, i este depăs, it ı̂n performant, ă de alt, i
algoritmi de sortare.
3.3 SelectionSort
Putem vedea scadere in timpi fata de ceilalti algoritmi, el poate
fi foarte eficient pentru date de intrare mici sau pentru cazurile ı̂n
care lista este aproape sortată. În aceste situat, ii, SelectionSort
poate fi chiar mai rapid decât algoritmi mai sofisticat, i precum
Merge Sort sau Quick Sort.
3.4 QuickSort
Pentru liste mari sau pentru liste cu date distribuite neuniform,
timpul mediu poate creste considerabil, dar QuickSort este in
continuare un algoritm eficient in majoritatea situat, iilor.
Rezultatele obt, inute sunt mult mai bune decât celelalte , acesta
metoda fiind mult mai performanta decât restul . Putem observa
ı̂mbunătăt, iri secvent, iale la timpi.
3.5 MergeSort
Am rămas plăcut surprins când am văzut ce rezultate a dat
MergeSort, teoretic este printre cele mai rapide metode de sortare.
Rezultatele nu se compara nici măcar cu QuickSort , este mult
peste.
10
4 Bibliografie
Link - Geeks4Geeks
Link - Github
Link - StackOverflow
Link - UVT
11