1 / 14

ALGORITMI DE SORTARE

ALGORITMI DE SORTARE. De ce este nevoie să facem o ORDINE rapidă în “DEZORDINE” ?. Lumea reala si PROBLEMA SORTARII. Unele din cele mai importante aplicaţii ale sortării sunt :

hera
Download Presentation

ALGORITMI DE SORTARE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ALGORITMI DE SORTARE De ce este nevoie să facem o ORDINE rapidă în “DEZORDINE” ?

  2. Lumea reala si PROBLEMA SORTARII Unele din cele mai importante aplicaţii ale sortării sunt: • 1. Rezolvarea problemei de “punere împreună“, a unorarticolelor similare. Adică dându-se n (suficient de mare) articole într-o ordine aleatoare, din care multe au aceeaşi valoare, ne propunem să rearanjăm aceste articole astfel încât toate articolele cu valori egale să apară în poziţii consecutive; elementele pot fi aşezate crescător (a1 ≤ a2 ≤ a3 ≤ . . . ≤ an) sau descrescător (a1 ≥ a2 ≥ a3 ≥ . . . ≥ an).

  3. Lumea reala si PROBLEMA SORTARII • 2. Căutarea unor informaţii în funcţie de nişte valori cheie. Sortarea este un mijloc ajutător pentru căutare, permiţând astfel ca ieşirile de la calculator să poată fi adaptate cerinţelor umane. • 3. O altă aplicaţie, mai clară, a sortării apare în cazul rutinelor de editare a fişierelor unde fiecare linie este identificată de un număr de cheie. În timp ce un utilizator tipăreşte adăugări şi modificări, nu este necesar să se păstreze întreg fişierul în memorie. Liniile pot fi modificate, apoi sortate (oricum ele sunt ordonate) şi după aceea comasate cu fişierul original. Aceasta permite o utilizare rezonabilă a eficienţei memoriei într-o situaţie ce presupune multiprogramarea. • Fabricanţii de calculatoare estimează că peste 25% din timpul de rulare al calculatoarelor este ocupat de sortare, în condiţiile în care toţi clienţii sunt luaţi în considerare. Există multe instalaţii în care sortarea reclamă peste jumătate din timpul de calcul.

  4. ALGORITMI DE SORTARE • Sortarea prin insertie directa - Metoda este folosită de jucătorii de bridge în sortarea cărţilor, când iau cărţile una câte una. • Sortarea prin interschimbari directe • Sortare prin metoda bulelor • Sortare prin interclasare • Sortare rapida

  5. SORTAREA PRINMETODA BULELOR (BUBBLESORT ) MULTIME NESORTATA MULTIME SORTATA PRIN BUBBLESORT

  6. PRINCIPIUL METODEI Ideea de baza a sortarii prin metoda bulelor este in a parcurge tabloul de la stanga spre dreapta, fiind comparate elementele alaturate a[ i ] si a[i+1]. Daca vor fi gasite 2 elemente neordonate valorile lor vor fi interschimbate. Parcurgerea tabloului de la stinga spre dreapta se va repeta atat timp cat vor fi intalnite elemente neordonate. Sortarea prin metoda bulelor se considera drept una din cele mai putin eficiente metode de sortare dar cu un algoritm mai putin complicat.

  7. EXEMPLU • Fiecare pereche analizata este evidentiata printr-un chenar dublu, colorata gri in cazul in care elementele trebuie interschimbate. • Limita fiecarei etape de verificare este marcata prin linie dubla mai groasa.

  8. ALGORITM nr_parc:=0; {variabila contor numara la a cata parcurgere a vectorului suntem; parcurgerea vectorului se repeta pana cand la o parcurgere nu se mai pot face interschimbari} repeat inv:=false; nr_parc:=nr_parc+1; for i:=1 to n-nr_parc do   if a[i]>a[i+1] then     beginaux:=a[i];           a[i]:=a[i+1];             a[i+1]:=aux; inv:=true        end; until inv=false;

  9. ANIMATIE BUBBLESORT Elementele alaturate se compara si daca nu sunt in ordinea dorita, se intershimba. 6 12 3 10 5 neterminata….!! s.a.m.d. Dupa prima parcurgere a vectorului, elementul maxim e asezat pe pozitia sa finala!!!

  10. COMPLEXITATEA ALGORITMULUI • Sortarea prin meteoda bulelor este o metoda de sortare simpla, eficienta pentru un numar mic de elemente (mai putin de 15), dar nu pentru tablouri mari. • Bubblesorteste extrem de eficienta în ceea ce priveşte utilizarea memoriei, datorită faptului că toate operaţiunile de triere sunt efectuate pe multimea initiala de date. • Timpul de executie depinde de ordinea initiala a elementelor. Daca tabloul este deja sortat e nevoie de un singur pas, adica N-1 comparari. In cazul cel mai nefavorabil sunt necesare N ×(N-1)/2 comparari si N × (N-1)/2 interschimbari. Performanta algoritmului in caz general este mai greu de analizat dar este asemanator cazului nefavorabil.

  11. APLICATIE • In prima ora de Educatie fizica a fiecarui an scolar, profesorul trebuie sa-si aseze elevii fiecarei clase in ordine crescatoare dupa inaltime. Cum ii sugerati sa procedeze?

  12. IMPLEMENTARE var a:array[1..100] of integer; x,n i,k:integer; inv:boolean; begin write(‘dati numarul de elevi din clasa’); readln(n); for i:=1 to n do begin write(‘inaltimea elevului ’, i); readln(a[i]); end; nr_parc:=0; repeat inv:=false; nr_parc:=nr_parc+1; for i:=1 to n-nr_parc do   if a[i]>a[i+1] then     beginaux:=a[i];           a[i]:=a[i+1];             a[i+1]:=aux; inv:=true        end; until inv=false; write(‘elevii aranjati crescator dupa inaltime’); for i:=1 to n do write(a[i], ‘ ‘); end. BUBBLE.EXE

  13. BIBLIOGRAFIE • http://dranaxum.files.wordpress.com/2007/11/studiu-asupra-timpilor-de-sortare.pdf • http://buffered.io/2008/08/14/sorting-algorithms-the-bubble-sort/ • http://hosok2.com/project/dataExpansion_1/Bubble_sort_animation.gif

  14. Prof. Master Lenuta RAD Liceul Teoretic “Pavel Dan” Campia Turzii

More Related