Sunteți pe pagina 1din 15

Algoritmi de sortare

Made & Designed By Ciprian Ursulean. All Rights Reserved


Sortarea prin insertie (insert sort)
Reprezentare grafica:

Fie tabloul unidimensional v de lungime n = 8

// int v[8] = {6, 5, 3, 1, 8, 7, 2, 4};

Sortarea prin insertie complexitate patratica O(n ^ 2)


Principiul functionarii sortarii prin insertie

Algoritmul de sortare prin insertie construieste pas cu pas lista


elementelor sortate, adaugand la ea cate un element la un moment dat.
La fiecare pas un element este extras din lista initiala si este introdus in
lista cu elementele sortate. Elementul este inserat pe pozitia corecta
in lista sortata, astfel incat ea sa ramana sortata in continuare.
Concluzii - Sortarea prin insertie
Metoda sortarii prin insertie este una destul de eficienta, in special daca
este folosita pe un numar relativ mic de elemente.

Ea are o complexitate patratica (O(n ^ 2))

In practica, se dovedeste a fi mai rapida decat alte metode

de sortare (bubble sort, select sort) dar si mai inceata

decat merge sort si quick sort.


Sortarea prin interclasare (merge sort)
Reprezentare grafica:

Fie tabloul unidimensional v de lungime n = 8

// int v[8] = {6, 5, 3, 1, 8, 7, 2, 4};


Principiu functionarii sortarii prin
interclasare

Metoda de sortare prin interclasare se bazeaza pe tehnica

Divide et impera, astfel: impartim vectorul pana ajungem la secvente


de lungime 1 sau 2. Daca lungimea este 1 elementul este deja sortat si
il putem interclasa cu alta secventa ordonata, iar daca lungimea
secventei este 2 si numerele nu sunt ordonate, le interschimbam. Acest
lucru se fare recursiv, realizandu - se o sortare eficienta.
Concluzii - Sortarea prin interclasare
Metoda sortarii prin interclasare este una dintre cele mai rapide metode
de sortare. Acest algoritm de sortare este o aplicatie a metodei de
programare Divide et impera.

Aceasta metoda de sortare este eficienta si in cazul in care sortam


numere relativ multe, dar si relativ putine.

Complexitatea sortarii prin interclasare este de O(n * logn)

dar poate ajunge si la O(n ^ 2) in functie de caz.


Sortarea rapida (quick sort)

Reprezentare grafica:

Fie tabloul unidimensioal v de lungime n = 8

// int v[8] = {6, 5, 3, 1, 8, 7, 2, 4};

Complexitatea sortarii rapide este logaritmica O(n * logn)


Principiul de functionare al sortarii rapide

Sortarea rapida are la baza existenta unui pivot, element care isi
pastreaza ordinea in vectorul deja ordonat, astfel elementele mai mici
decat pivotul vor fi in stanga sa iar cele mai mari in dreapta sa. Este
esential ca prelucrarea elementelor in raport cu pivotul sa se realizeze
in mod linear (O(n)).

La fel ca sortarea prin interclasare, si sortarea rapida se bazeaza pe


tehnica divide et impera
Concluzii - Sortarea rapida

In momentul de fata, sortarea rapida este cea mai eficienta sortare din
lume, avand o complexitate logaritmica (O(n * logn)). Aceasta este
folosita in special pentru sortarea unui numar relativ mare de elemente,
datorita faptului ca este foarte rapida.
Concluzii ale eficientei sortarilor

Cea mai performanta sortare, de departe este sortarea rapida,


dovedindu-se mai rapida decat cea prin interclasare cu aproximativ 30
% in testele efectuate. Sortarea prin insertie s-a dovedit cea mai
inceata dintre sortarile testate.
Echipamente de test

Procesor: Intel Dual Core i5 2540M 2.6 GHZ

RAM: 4 GB DDR3

SSD: 256 GB

SO: Ubuntu Linux 16.04.2 LTS

S-ar putea să vă placă și