1 / 35

SORTAREA PRIN METODA BULELOR

SORTAREA PRIN METODA BULELOR. OBIECTIVE: să cunoască semnificaţia noţiunii de sortare; să descrie algoritmul în limbaj natural; să cunoască ce variabile sunt necesare; să implementeze algoritmul în limbaj C++; să rezolve probleme ce necesită sortări. SEMNIFICAŢIA NOŢIUNII DE SORTARE.

Télécharger la présentation

SORTAREA PRIN METODA BULELOR

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. SORTAREA PRIN METODA BULELOR OBIECTIVE: să cunoască semnificaţia noţiunii de sortare; să descrie algoritmul în limbaj natural; să cunoască ce variabile sunt necesare; să implementeze algoritmul în limbaj C++; să rezolve probleme ce necesită sortări.

  2. SEMNIFICAŢIA NOŢIUNII DE SORTARE • A sorta un tablou înseamnă a rearanja elementele tabloului astfel încât între acestea să existe o relaţie de ordine (crescătoare sau descrescătoare)

  3. DESCRIEREA METODEI Prin această metodă se parcurge tabloul şi se compară fiecare element cu succesorul său. Dacă nu sunt în ordine, cele două elemente se interschimbă între ele. Tabloul se parcurge de mai multe ori, până când, la o parcurgere completă, nu se mai execută nicio interschimbare între elemente (adică tabloul este sortat).

  4. ENUNŢUL PROBLEMEI: Se dă un tablou a cu nelemente întregi. Să se realizeze sortarea crescătoare a elementelor tabloului.

  5. VARIABILE NECESARE • a – tabloul unidimensional; • n – lungimea tabloului; • aux – pentru interschimbul elementelor (de acelaşi tip cu elementele tabloului); • i – contor (utilizat pentru parcurgerea tabloului); • f – variabilă logică (se utilizează pentru a şti dacă s-a făcut cel puţin o operaţie de interschimbare la parcurgerea tabloului).

  6. ALGORITMUL ÎN LIMBAJ NATURAL • Se iniţializează variabila f cu 1 (adică se presupune că şirul este sortat); • Se începe parcurgerea tabloului plecând de la i=0 (primul element al tabloului); • Se compară elementul a[i] cu elementul următor a[i+1]: • Dacă a[i] > a[i+1] atunci se realizează interschimbul celor două elemente şi variabila f primeşte valoarea 0; • Se trece la următoarea poziţie în tablou prin incrementarea lui i; • Se continua parcurgerea tabloului făcând comparaţiile necesare până când i ajunge la valoarea n-2; • Se reia algoritmul începând cu pasul 1 cât timp f=0, • Când f rămâne 1 atunci înseamnă că tabloul este sortat crescător (la ultima parcurgere nu s-a realizat nici un interchimb de elemente).

  7. Fie tabloul unidimensional a ce are următorul conţinut: Poziţia i = 0 1 2 3 4 3 2 1 n=4

  8. f=1 i=0 Prima parcurgere a tabloului 4 3 2 1 > DA SE REALIZEAZĂ INTERSCHIMBUL ELEMENTELOR

  9. f=0 Prima parcurgere a tabloului 3 4 2 1

  10. f=0 i=1 Prima parcurgere a tabloului 3 4 2 1 > DA SE REALIZEAZĂ INTERSCHIMBUL ELEMENTELOR

  11. f=0 Prima parcurgere a tabloului 3 2 4 1

  12. f=0 i=2 Prima parcurgere a tabloului 3 2 4 1 > DA SE REALIZEAZĂ INTERSCHIMBUL ELEMENTELOR

  13. f=0 Prima parcurgere a tabloului 3 2 1 4

  14. f=0 Prima parcurgere a tabloului 3 2 1 4 f=0 ? DA SE REIA PARCURGEREA TABLOULUI

  15. f=1 i=0 A doua parcurgere a tabloului 3 2 1 4 > DA SE REALIZEAZĂ INTERSCHIMBUL ELEMENTELOR

  16. f=0 A doua parcurgere a tabloului 2 3 1 4

  17. f=0 i=1 A doua parcurgere a tabloului 2 3 1 4 > DA SE REALIZEAZĂ INTERSCHIMBUL ELEMENTELOR

  18. f=0 A doua parcurgere a tabloului 2 1 3 4

  19. f=0 i=2 A doua parcurgere a tabloului 2 1 3 4 > NU

  20. f=0 A doua parcurgere a tabloului 2 1 3 4 f=0 ? DA SE REIA PARCURGEREA TABLOULUI

  21. f=1 i=0 A treia parcurgere a tabloului 2 1 3 4 > DA SE REALIZEAZĂ INTERSCHIMBUL ELEMENTELOR

  22. f=0 A treia parcurgere a tabloului 1 2 3 4

  23. f=0 i=1 A treia parcurgere a tabloului 1 2 3 4 > NU

  24. f=0 i=2 A treia parcurgere a tabloului 1 2 3 4 > NU

  25. f=0 A treia parcurgere a tabloului 1 2 3 4 f=0 ? DA SE REIA PARCURGEREA TABLOULUI

  26. f=1 i=0 A patra parcurgere a tabloului 1 2 3 4 > NU

  27. f=1 i=1 A patra parcurgere a tabloului 1 2 3 4 > NU

  28. f=1 i=2 A patra parcurgere a tabloului 1 2 3 4 > NU

  29. f=1 A patra parcurgere a tabloului 1 2 3 4 f=0 ? NU TABLOUL ESTE SORTAT

  30. Tabloul iniţial: 4 3 2 1 Tabloul sortat crescător 1 2 3 4

  31. ALGORITMUL ÎN LIMBAJ C++ do { f=1; for(i=0;i<n-1;i++) if (a[i]>a[i+1]) { aux=a[i]; a[i]=a[i+1]; a[i+1]=aux; f=0; } } while(!f); cout<<"sirul sortat este"<<endl; for (i=0;i<n;i++) cout<<a[i]<<" "; } #include<iostream.h> int a[20],aux,f; unsigned int n,i; void main (void) { cout<<"n="; cin>>n; for (i=0;i<n;i++) { cout<<"a["<<i+1<<"]="; cin>>a[i]; }

  32. APLICAŢII • Dându-se un tablou cu n elemente numere naturale, şi o variabilă p naturală (p<n), să se sorteze crescător tabloul până la elementul p şi de la elementul p descrescător.

  33. APLICAŢII • Dându-se un tablou cu n elemente numere naturale, să se localizeze elementul maxim şi toate elementele dinaintea lui să se sorteze crescător, iar cele de după el,descrescător.

  34. APLICAŢII • Se introduce anul naşterii pentru un număr de n persoane, n introdus şi el de la tastatură. Să se afişeze vârstele persoanelor în ordine crescătoare.

  35. TEMĂ Pentru un experiment privind inteligenţa unor maimuţe se aşează pe masă un număr de maxim 20 de cuburi. Maimuţele sunt învăţate să aleagă cuburile astfel încât să formeze din toate un turn stabil. Pentru fiecare maimuţă, înainte de testare, este nevoie să se rearanjeze cuburile în ordinea iniţială. Să se alcătuiască algoritmul după care o maimuţă ar trebui să formeze turnul, astfel încât să se poată reface aşezarea iniţială a cuburilor.

More Related