Comparat ,ie teoretic a s ,i experimental a a unor [628472]
Comparat ,ie teoretic a s ,i experimental a a unor
metode de soratre
Andreea-Mariana Br anescu
Aprilie 2019
Universitatea de Vest din Timis ,oara
Facultatea de Matematic a s ,i Informatic a
Specializarea Informatic a
Email: [anonimizat].
Aceast a lucrare este dedicat a studiului asupra unor metode de sortare,
av^ and ca scop realizarea unei comparat ,ii ^ ntre acestea.
Prin sortare^ nt ,elegem un algoritm prin intermediul c aruia putem rearanja
un num ar oarecare de elemente^ ntr-o anumit a ordine. Un exemplu de folosire
a sort arii ^ l reprezint a motoarele de c autare web, cum ar Google, Yahoo,
MSN, care folosesc astfel de algoritmi.
^In cele ce urmeaz a vom prezenta unii dintre cei mai cunoscut ,i algoritmi
de sortare s ,i vom analiza comportamentul acestora ^ n diferite situat ,ii, pentru
a putea realiza o comparat ,ie ^ ntre aces ,tia.
1
1 Introducere
De multe ori ne ^ ntreb am de ce avem nevoie de at^ at de mult ,i algoritmi de
sortare? Se s ,tie faptul c a nu tot ,i algoritmii au fost dezvoltat ,i ^ n acelas ,i timp.
^Incerc am s a ^ nv at , am diferit ,i algoritmi de sortare pentru a ^ nt ,elege anumite
concepte s ,i tehnici care stau la baza acestora.
Algoritmii ce urmeaz a a analizat ,i sunt Bubble Sort, Selection Sort,
Insertion Sort, Merge Sort s ,i Quick Sort. ^In cazul ec arui algoritm vom
analiza timpul de execut ,ie s ,i memoria utilizat a pentru a determina ecient ,a,
iar mai apoi vom studia comportamentul algoritmilor ^ n cazuri mai speciale,
precum listele cu un num ar foarte mare de elemente.
Consider am o secvent , a de entit at ,i. Aceste entit at ,i pot de diferite tipuri.
Pentru a exemplica s ,i a face sortarea mai us ,or de ^ nt ,eles, vom vorbi despre
numere. Numerele noastre apart ,in unei mult ,imi, mult ,ime pe care exist a o
relat ,ie de ordine.
Sortarea secvent ,eipresupune aranjarea elementelor astfel ^ nc^ at acestea
s a se a
e ^ ntr-o anumit a ordine, cresc atoare sau descresc atoare.
De ce facem aceast a analiz a s ,i, implicit, aceast a comparat ,ie? Pentru a
^ nt ,elege mai bine sortarea, deoarece pe baza sort arii sunt construit ,i mult ,i
alt ,i algoritmi. Astfel, vom c^ as ,tiga un avantaj ^ n ceea ce prives ,te rezolvarea
problemelor viitoare cu care ne vom confrunta.
2 Prezentare formal a a problemei s ,i solut ,iei
Anumit ,i algoritmi necesit a timp p atratic de execut ,ie, at^ at ^ n cazul mediu,
c^ at s ,i ^ n cazul cel mai nefavorabil. Prin aceasta ^ nt ,elegem c a aces ,ti algoritmi
se comport a excelent pentru cazuri ^ n care avem liste mici de elemente, ^ ns a
cu c^ at num arul de elemente cres ,te, cu at^ at ecient ,a scade, av^ and nevoie de
un timp foarte mare de execut ,ie. De asemenea, exist a algoritmi mai ecient ,i,
care lucreaz a ^ n timp logaritmic, ceea ce ^ i face mult mai utili pentru cazurile
mari. Pentru a ^ nt ,elege diferent ,a dintre un timp p atratic s ,i unul logaritmic
este sucient s a spunem c a pe un caz de 100.000 de elemente, QuickSort va
sorta lista ^ n aproximativ 30 de secunde, pe c^ and MergeSort are nevoie de
peste nou a ore.
Vom ^ nv at ,a care algoritm se potrives ,te cel mai bine cu problema de re-
zolvat, analiz^ and capacitatea ec aruia.
2
2.1 Bubble Sort
Figure 1: Sortare prin metoda bulelor
Bubble Sort a fost ment ,ionat a pentru prima dat a de Knuth[1]. Sortarea
prin metoda bulelor mai este cunoscut a s ,i sub numele de sortare prin inter-
schimbarea valorilor vecine. De altfel, acesta este s ,i fundamentul pe care se
construies ,te algoritmul.
Pseudocod
Bubblesort ( x [ 1 . . . n ] )
FOR i <
