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