Algoritmul const n parcurgerea tabloului A de mai multe ori, pn cnd devine ordonat. La
fiecare pas se compar dou elemente alturate. Dac ai > ai + 1, (i = 1, 2, ..., n 1), atunci cele
dou valori se interschimb ntre ele. Controlul aciunii repetitive este dat de variabila boolean
ok, care la fiecare reluare a algoritmului primete valoarea iniial adevrat, care se schimb n
fals dac s-a efectuat o interschimbare de dou elemente alturate. n momentul n care
tabloul A s-a parcurs fr s se mai efectueze nici o schimbare, ok rmne cu valoarea iniial
adevrat i algoritmul se termin, deoarece tabloul este ordonat.
Interschimbarea a dou elemente se realizeaz prin intermediul variabilei auxiliare aux care are
acelai tip ca i elementele tabloului.
Subalgoritm Metoda_bulelor (A)
1: repeta
2: ok = adevrat
3: pentru i=1,n-1 execut
4:
dac a[i] > a[i+1] atunci
5:
ok = fals
6:
aux = a[i]
7:
a[i] = a[i+1]
8:
a[i+1] = aux
9: pana cand ok
Considerm tabloul A cu 5 elemente numere reale: 0.0, 1.1, 1.0, 1.2 i 0.08. Prima parcurgere a
tabloului (ok este iniializat cu adevrat):
a1 = 0.0 a2 = 1.1 a3 = 1.0 a4 = 1.2 a5 = 0.08 ok
0.0
1.0 1.1
1.2
0.08
fals
0.0
1.0
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 definitiv. Urmeaz a doua
parcurgere a tabloului (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 parcurgere 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 ordonat. 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 ncheiat.
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 astfel, la urmtorul pas nu
mai sunt necesare verificrile n care intervine acest element i cele care se afl dup el n ir.