Documente Academic
Documente Profesional
Documente Cultură
Algoritmul const n par-cur-ge-rea tabloului A de mai multe ori, pn cnd devine or-do-nat. La
fiecare pas se com-pa-r dou elemente alturate. Dac ai > ai + 1, (i = 1, 2, ..., n 1), atunci cele
dou va-lori se interschimb ntre ele. Controlul aciunii repetitive este dat de variabila boole-a-n ok,
care la fiecare reluare a algoritmului primete valoarea ini-i-a-l adevrat, care se schim--b n fals
dac s-a efectuat o interschimbare de dou ele-men-te alturate. n mo-men-tul n care tabloul A s-a
parcurs fr s se mai efectueze nici o schim-bare, ok r-m-ne cu valoarea iniial adevrat i
algoritmul se termin, deoarece ta-bloul este or-do-nat.
Interschimbarea a dou elemente se realizeaz prin intermediul variabilei auxiliare aux care are
acelai tip ca i elementele tabloului.
a2 = 1.1
a3 = 1.0
a4 = 1.2
a5 = 0.08
ok
0.0
1.0
0.0
1.0
1.1
1.2
0.08
fals
1.1
0.08
1.2
fals
Valorile 0.0 < 1.1, rmn neschimbate, 1.1 > 1.0, le interschimbm. Deoarece 1.1 < 1.2, avansm i
constatm c 1.2 > 0.0.8, deci din nou avem interschimbare. n consecin, la ieire din structura
pentru ok este fals.Observm c 1.2 a ajuns pe locul lui de-fi-nitiv. Urmeaz a doua parcurgere a
ta-blo-ului (ok primete din nou valoarea adevrat).
a1 = 0.0
a2 = 1.0
a3 = 1.1
a4 = 0.08
a5 = 1.2
ok
0.0
1.0
0.08
1.1
1.2
fals
Am avut interschimbare i de data aceasta, deci ieim cu ok = fals. La acest pas 1.1 a ajuns pe locul
su definitiv. A treia par-cur-ge-re a tabloului ncepe cu reiniializarea lui ok cu valoarea adevrat.
a1 = 0.0
a2 = 1.0
a3 = 0.08
a4 = 1.1
a5 = 1.2
ok
0.0
0.08
1.0
1.1
1.2
fals
Am interschimbat 0.08 cu 1.0, cel din urm astfel a ajuns pe locul su n irul or-do-nat. A patra
parcurgere a tabloului se finalizeaz cu valoarea ok = adevrat, deoarece nu am efectuat nici o
interschimbare, ceea ce nseamn c procesul de ordonare s-a n-che-iat.
a1 = 0.0
a2 = 0.08
a3 = 1.0
a4 = 1.1
a5 = 1.2
ok
0.0
0.08
1.0
1.1
1.2
adevrat
Observaia cu privire la faptul c la fiecare parcurgere a ajuns cel puin un element pe locul su
definitiv n irul ordonat poate fi fructificat, deoarece constatm c ast-fel, la urmtorul pas nu mai
sunt necesare verificrile n care intervine acest ele-ment i ce-le care se afl dup el n ir. Rezult c
la fiecare parcurgere am putea micora cu 1 numrul elementelor verificate. Dar este posibil c la o
parcurgere s ajung mai multe elemente n locul lor definitiv. Rezult c vom ine minte indicele
ultimului element care a intervenit n interschimbare i verificrile le vom efectua doar pn la acest
element. Astfel, ajungem la urmtorul subalgoritm mbuntit ca performan:
a1
a2
a3
a4
4
3
2
1
3
2
1
2
2
1
3
3
1
4
4
4
Numrul parcurgerii
iniial
1
2
3
Total interschimbri
Numrul de
interschimbri
3
2
1
6
Astfel, vom spune c metoda bulelor are un timp de execuie n cazul cel mai defavorabil de (n2).