2. Enunţul problemei
Să se ordoneze descrescător folosind în mod
eficient metoda bulelor un şir de n
numere. Eficienţa acestei probleme constă
în faptul că de fiecare dată când se
parcurgerea nu se realizează până la
capăt, deoarece pe poziţia considerată
ultima se află valoarea minimă.
3. Algoritmul
Pasul 1: Se iniţializează cu valoarea 1 variabila ce ne
asigură eficienţa. (t)
Pasul 2: Se iniţializează o variabilă booleană cu valoarea
true, prin aceasta specificându-se dacă şirul de numere
este sortat.
Pasul 3: Se iau 2 câte 2 elemente din şir, şi se sortează, iar
valoarea variabilei booleane se va schimba.
Pasul 4: Se incrementează variabila de eficienţă.
Pasul 5: Se repetă algoritmul începând cu pasul 2, până
cand şirul este ordonat descrescător.
6. Program bubble_sort;
Type vector=array[1..100] of real;
Var n,i,t:integer;
v:vector;
aux:boolean;
ok:boolean;
Procedure sort_bule(var a:vector;n:integer);
Begin
t:=1;
Repeat
ok:=true;
for i:=1 to n-t do
if a[i]<a[i+1] then begin
ok:=false;
aux:=a[i];
a[i]:=a[i+1];
a[i+1]:=aux;
Until ok;
End;