Proses pengurutan
menjadi suatu kebutuhan bagi pemogram untuk menampilkan bermacam-macam
algoritma pengurutan. Hingga banyak algoritma pengurutan yang ditemukan, sudah
semacam perosalan yang kaya dengan solusi algoritmik.
Apa saja
algoritma pengurutan itu ?
- Bubble sort
- Selection Sort (Max and Min sort )
- Insertion sort
- Heap sort
- Shell sort
- Qiuck Sort
- Merge Sort
- Radix Sort
- Tree Sort
Namun yang sering dipakai adalah Bubble sort, selection sort, insertion
sort dan shell sort.
Disini saya akan membahas tentang Bubble Sort.
PRINSIP :
Bubble short prinsip kerjanya sama seperti selection short yaitu melakukan
pertukaran elemen dalam proses pengurutan sehingga keduanya dinamakanpengurutan
dengan pertukaran. Apa bedanya dengan , insertion sort dan shell sort? Dua
algoritma ini memiliki prinsip geser dan sisip elemen dalam proses pengurutan.
Mengapa dinamakan Bubble Short atau pengurutan apung ?
Karena diinspirasi oleh gelembung sabun yang berada diatas permukaan air. Karena berat jenis gelembung
sabun lebih ringan daripada berat jenis air, maka gelembung sabun selalu
terapung keatas permukaan. Secara umum, benda-benda yang berat akan terbenam
dan benda-benda yang ringan akan terapung keatas permukaan.
Maksudnya, apabila kita menginginkan larik tersebut menaik, maka elemen
larik yang berharga paling kecil “diapungkan” (diangkat keatas atau keujung
kiri larik) melaluiproses pertukaran. Proses pengapungan ini dilakukan n-1
langkah dengan n adalah ukuran larik. Pada akhir setiap langkah ke-i
larik [1...n] akan terdiri atas dua bagian yaitu bagian yang sudah
terurut, L(i+1..n), seperti gambar dibawah ini:
1 i
i+1 n
Setelah langkah terakhir, diperoleh larik L[1...n] yang terurut menaik.
Gambaran kerja Bubble Short
Misalkan kita akan mengurutkan 5 Elemen dibawah ini secara “menaik”
6
|
11
|
12
|
17
|
9
|
L1 L2
L3 L4 L5
K5 = [L5]<[L4] ? (9<17) Ya è Maka Urutannya jadi 6, 11, 12, 9, 17
K4 = [L4]<[L3] ? (9<12) Ya è Maka Urutannya jadi 6, 11, 9, 12, 17
K3 = [L3]<[L2] ? (9<11) Ya è Maka Urutannya jadi 6, 9, 11, 12, 17
K5 = [L2]<[L1] ? (9<6) Tidak è Maka Urutannya jadi 6, 9, 11, 12, 17
Pseudocode nya
Deklarasi
I : Integer
K:
Integer
Temp :
Integer
Algoritma
For i ç 1 to n – 1 do
For k ç n downto i + 1 do
If L(k)
< L[k-1] then
Temp ç L[k]
L[k] ç L[k-1]
L [ k-1] ç temp
Endif
Contoh
Program menggunakan bahasa C
Int
i,k,temp;
For (i
=1; i <=n – 1; i++)
For (k=n;
k>=i+1; k--)
If (L[k]
< L[k-1])
{
Temp =
L[k];
L[k] =
L[k-1];
L[k-1] =
temp;
}
Komentar
Posting Komentar