Metode gelembung ( Bubble sort )
Langkah – langkah dari buble sort adalah :
Metode ini memiliki prinsip pengapungan. Apabila kita menginginkan
larik terurut menaik, maka elemen larik yang berharga paling kecil ‘diapungkan’,
artinya diangkat ke atas (atau ke ujung kiri larik) melalui proses pertukaran.
Proses pengapungan ini dilakukan sebanyak N-1 langkah dengan N adalah ukuran
larik. Pada akhir setiap langkah ke-I, larik L[1..N] akan terdiri atas dua bagian
yaitu bagian yang sudah terurut, yaitu L[1..I] dan bagian yang belum terurut
L[I+1..N]. Setelah langkah terakhir, diperoleh larik L[1..N] yang terurut menaik.
misalkan larik L dengan n=6 sebagai berikut
25 | 27 | 10 | 8 | 76 | 21 |
1 | 2 | 3 | 4 | 5 | 6 |
maka langkah-langkah pengurutannya adalah:
Semula | 25 | 27 | 10 | 8 | 76 | 21 |
Iterasi 1 | 8 | 25 | 27 | 10 | 76 | 21 |
Iterasi 2 | 8 | 10 | 25 | 27 | 76 | 21 |
Iterasi 3 | 8 | 10 | 21 | 25 | 27 | 76 |
Iterasi 4 | 8 | 10 | 21 | 25 | 27 | 76 |
Iterasi 5 | 8 | 10 | 21 | 25 | 27 | 76 |
Procedure BubbleSort(input/output L : Larikint, input N : integer)
{mengurutkan larik L[1..N] sehingga terurut menaik dengan metode
pengurutan gelembung}
{k.awal : elemen larik L sudah terdefinisi nilai-nilainya}
{k.akhir : elemen larik L terurut menaik sedemikian sehingga L[1] _ L[2] _ .. _
L[N]}
Deklarasi
I : integer {pencacah untuk jumlah langkah}
K : integer {pencacah untuk pengapungan pada setiap langkah}
Procedure Tukar(input/output A : integer, input/output B : integer)
Deskripsi
For I _ 1 to N – 1 do
For K _ N downto I + 1 do
If L[K] < L[K-1] then
{pertukarkan L[K] dengan L[K-1]}
tukar(L[K], L[K-1])
endif
endfor
endfor