sortarea prin metoda bulelor
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/1.jpg)
SORTAREA PRIN METODA SORTAREA PRIN METODA BULELORBULELOR
OBIECTIVE:OBIECTIVE:să cunoască semnificaţia noţiunii de sortasă cunoască semnificaţia noţiunii de sorta
re;re;să descrie algoritmul în limbaj natural;să descrie algoritmul în limbaj natural;să cunoască ce variabile sunt necesare;să cunoască ce variabile sunt necesare;să implementeze algoritmul în limbaj C++să implementeze algoritmul în limbaj C++
;;să rezolve probleme ce necesită sortări.să rezolve probleme ce necesită sortări.
![Page 2: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/2.jpg)
SEMNIFICAŢIA NOŢIUNII DE SEMNIFICAŢIA NOŢIUNII DE SORTARESORTARE
A sorta A sorta unun tablou înseamnă a tablou înseamnă a rearanja elementele rearanja elementele tablouluitabloului astfel astfel încât între acestea să existe o relaţie încât între acestea să existe o relaţie de ordine (crescătoare sau de ordine (crescătoare sau descrescătoare)descrescătoare)
![Page 3: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/3.jpg)
DESCRIEREA METODEIDESCRIEREA METODEIPrin această metodă se parcurge Prin această metodă se parcurge tabloultabloul şi se compară fiecare element cu şi se compară fiecare element cu succesorul său. Dacă nu sunt în ordine, succesorul său. Dacă nu sunt în ordine, cele două elemente se interschimbă între cele două elemente se interschimbă între ele. ele. TabloulTabloul se parcurge de mai multe ori, se parcurge de mai multe ori, până când, la o parcurgere completă, nu până când, la o parcurgere completă, nu se mai execută nicio interschimbare între se mai execută nicio interschimbare între elemente (adică elemente (adică tabloultabloul este sortat). este sortat).
![Page 4: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/4.jpg)
ENUNŢUL PROBLEMEI:ENUNŢUL PROBLEMEI:
Se dă un tablou a cu nn elemente întregi. Să se realizeze sortarea crescătoare a elementelor tabloului.
![Page 5: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/5.jpg)
VARIABILE NECESAREVARIABILE NECESARE
a – tabloul unidimensional;a – tabloul unidimensional;n – lungimea tabloului;n – lungimea tabloului;aux – pentru interschimbul elementelor aux – pentru interschimbul elementelor
(de acelaşi tip cu elementele tabloului);(de acelaşi tip cu elementele tabloului); i – contor (utilizat pentru parcurgerea i – contor (utilizat pentru parcurgerea
tabloului);tabloului);f – variabilă logică (se utilizează pentru a f – variabilă logică (se utilizează pentru a
şti dacă s-a făcut cel puţin o operaţie de şti dacă s-a făcut cel puţin o operaţie de interschimbare la parcurgerea interschimbare la parcurgerea tablouluitabloului).).
![Page 6: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/6.jpg)
ALGORITMUL ÎN LIMBAJ NATURALALGORITMUL ÎN LIMBAJ NATURAL
1.1. Se iniţializează variabila f cu 1 (adică se presupune că Se iniţializează variabila f cu 1 (adică se presupune că şirul este sortat);şirul este sortat);
2.2. Se începe parcurgerea tabloului plecând de la i=0 (primul Se începe parcurgerea tabloului plecând de la i=0 (primul element al tabloului);element al tabloului);
3.3. Se compară elementul a[i] cu elementul următor a[i+1]:Se compară elementul a[i] cu elementul următor a[i+1]: Dacă a[i] Dacă a[i] > > a[i+1] atunci se realizează interschimbul celor a[i+1] atunci se realizează interschimbul celor
două elemente şi variabila f primeşte valoarea 0;două elemente şi variabila f primeşte valoarea 0;4.4. Se trece la următoarea poziţie în tablou prin Se trece la următoarea poziţie în tablou prin
incrementarea lui i;incrementarea lui i;5.5. Se continua parcurgerea tabloului făcând comparaţiile Se continua parcurgerea tabloului făcând comparaţiile
necesare până când i ajunge la valoarea n-2;necesare până când i ajunge la valoarea n-2;6.6. Se reia algoritmul Se reia algoritmul începând cu pasul 1 cât timp f=0,începând cu pasul 1 cât timp f=0,7.7. Când f rămâne 1 atunci înseamnă că tabloul este sortat Când f rămâne 1 atunci înseamnă că tabloul este sortat
crescător (la ultima parcurgere nu s-a realizat nici un crescător (la ultima parcurgere nu s-a realizat nici un interchimb de elemente).interchimb de elemente).
![Page 7: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/7.jpg)
Fie tabloul unidimensional a ce Fie tabloul unidimensional a ce are următorul conţinut:are următorul conţinut:
4 123
10 32Poziţia i =
n=4
![Page 8: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/8.jpg)
4 123
f=1
i=0
SE REALIZEAZĂ INTERSCHIMBUL ELEMENTELOR
Prima parcurgere a tabloului
>
DA
![Page 9: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/9.jpg)
4 123
f=0 Prima parcurgere a tabloului
![Page 10: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/10.jpg)
4 123
f=0
i=1
Prima parcurgere a tabloului
>
DASE REALIZEAZĂ INTERSCHIMBUL ELEMENTELOR
![Page 11: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/11.jpg)
4 123
Prima parcurgere a tablouluif=0
![Page 12: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/12.jpg)
4 123
f=0
i=2
Prima parcurgere a tabloului
>
DASE REALIZEAZĂ INTERSCHIMBUL ELEMENTELOR
![Page 13: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/13.jpg)
4123
Prima parcurgere a tablouluif=0
![Page 14: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/14.jpg)
4123
f=0 Prima parcurgere a tabloului
f=0
DA
?
SE REIA PARCURGEREA TABLOULUI
![Page 15: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/15.jpg)
4123
A doua parcurgere a tablouluif=1
i=0
>
DASE REALIZEAZĂ INTERSCHIMBUL ELEMENTELOR
![Page 16: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/16.jpg)
412 3
A doua parcurgere a tablouluif=0
![Page 17: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/17.jpg)
412 3
A doua parcurgere a tablouluif=0
i=1
>
DASE REALIZEAZĂ INTERSCHIMBUL ELEMENTELOR
![Page 18: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/18.jpg)
412 3
A doua parcurgere a tablouluif=0
![Page 19: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/19.jpg)
412 3
A doua parcurgere a tablouluif=0
i=2
>
NU
![Page 20: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/20.jpg)
412 3
A doua parcurgere a tablouluif=0
f=0 ?
DA
SE REIA PARCURGEREA TABLOULUI
![Page 21: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/21.jpg)
412 3
A treia parcurgere a tablouluif=1
i=0
>
DASE REALIZEAZĂ INTERSCHIMBUL ELEMENTELOR
![Page 22: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/22.jpg)
41 2 3
A treia parcurgere a tablouluif=0
![Page 23: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/23.jpg)
41 2 3
A treia parcurgere a tablouluif=0
i=1
>
NU
![Page 24: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/24.jpg)
41 2 3
A treia parcurgere a tablouluif=0
i=2
>
NU
![Page 25: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/25.jpg)
41 2 3
A treia parcurgere a tablouluif=0
f=0 ?
DA
SE REIA PARCURGEREA TABLOULUI
![Page 26: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/26.jpg)
41 2 3
A patra parcurgere a tablouluif=1
i=0
>
NU
![Page 27: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/27.jpg)
41 2 3
A patra parcurgere a tablouluif=1
i=1
>
NU
![Page 28: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/28.jpg)
41 2 3
A patra parcurgere a tablouluif=1
i=2
>
NU
![Page 29: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/29.jpg)
41 2 3
A patra parcurgere a tablouluif=1
f=0 ?
NU
TABLOUL ESTE SORTAT
![Page 30: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/30.jpg)
41 2 3
Tabloul sortat crescător
4 123
Tabloul iniţial:
![Page 31: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/31.jpg)
ALGORITMUL ÎN LIMBAJ C++ALGORITMUL ÎN LIMBAJ C++#include<iostream.h>#include<iostream.h>int a[20],aux,f;int a[20],aux,f;unsigned int n,i;unsigned int n,i;void main (void)void main (void)
{{cout<<"n=";cout<<"n=";cin>>n;cin>>n;for (i=0;i<n;i++)for (i=0;i<n;i++)
{{
cout<<"a["<<i+1<<"]=";cout<<"a["<<i+1<<"]=";cin>>a[i];cin>>a[i];}}
dodo{{f=1;f=1;for(i=0;i<n-1;i++)for(i=0;i<n-1;i++)
if (a[i]>a[i+1])if (a[i]>a[i+1]){{
aux=a[i];aux=a[i];
a[i]=a[i+1];a[i]=a[i+1];
a[i+1]=aux;a[i+1]=aux;f=0;f=0;}}
}}while(!f);while(!f);cout<<"sirul sortat cout<<"sirul sortat este"<<endl;este"<<endl;for (i=0;i<n;i++)for (i=0;i<n;i++)
cout<<a[i]<<" ";cout<<a[i]<<" ";}}
![Page 32: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/32.jpg)
APLICAŢIIAPLICAŢII
1.1. Dându-se un tablou cu n elemente Dându-se un tablou cu n elemente numere naturale, şi o variabilă p numere naturale, şi o variabilă p naturală (pnaturală (p<<n), să se sorteze n), să se sorteze crescător tabloul până la elementul crescător tabloul până la elementul p şi de la elementul p descrescător.p şi de la elementul p descrescător.
![Page 33: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/33.jpg)
APLICAŢIIAPLICAŢII
2.2. Dându-se un tablou cu n elemente Dându-se un tablou cu n elemente numere naturale, să se localizeze numere naturale, să se localizeze elementul maxim şi toate elementul maxim şi toate elementele dinaintea lui să se elementele dinaintea lui să se sorteze crescător, iar cele de după sorteze crescător, iar cele de după el,descrescător.el,descrescător.
![Page 34: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/34.jpg)
APLICAŢIIAPLICAŢII
3.3. Se introduce anul naşterii pentru un Se introduce anul naşterii pentru un număr de n persoane, n introdus şi număr de n persoane, n introdus şi el de la tastatură. Să se afişeze el de la tastatură. Să se afişeze vârstele persoanelor în ordine vârstele persoanelor în ordine crescătoare.crescătoare.
![Page 35: SORTAREA PRIN METODA BULELOR](https://reader036.vdocuments.site/reader036/viewer/2022081416/56813088550346895d966453/html5/thumbnails/35.jpg)
TEMĂTEMĂ
Pentru un experiment privind inteligenţa unor Pentru un experiment privind inteligenţa unor maimuţe se aşează pe masă un număr de maimuţe se aşează pe masă un număr de maxim 20 de cuburi. Maimuţele sunt învăţate maxim 20 de cuburi. Maimuţele sunt învăţate să aleagă cuburile astfel încât să formeze din să aleagă cuburile astfel încât să formeze din toate un turn stabil. Pentru fiecare maimuţă, toate un turn stabil. Pentru fiecare maimuţă, înainte de testare, este nevoie să se înainte de testare, este nevoie să se rearanjeze cuburile în ordinea iniţială. Să se rearanjeze cuburile în ordinea iniţială. Să se alcătuiască algoritmul după care o maimuţă alcătuiască algoritmul după care o maimuţă ar trebui să formeze turnul, astfel încât să se ar trebui să formeze turnul, astfel încât să se poată reface aşezarea iniţială a cuburilor.poată reface aşezarea iniţială a cuburilor.