Bubble Sort Metode pengurutan gelembung diinspirasikan oleh gelembung sabun yang berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat jenis air, maka gelembung sabun selalu terapung ke atas permukaan. Metode ini dilakukan dengan cara membandingkan elemen yang sekarang dengan yang berikutnya, jika elemen berikutnya lebih kecil maka elemen ditukar P.MARPAUNG SORTING(PENGURUTAN)
Algoritma Pengurutan Gelembung Untuk mendapatkan larik yang terurut menaik, proses yang dilakukan pada setiap langkah sebagai berikut: Langkah 1: Mulai elemen K =N, N-1, …, 2, bandingkan L[K] dengan L[K-1]. Jika L[K] < L[K-1], pertukarkan L[K] dengan L[K-1]. Pada akhir langkah 1, elemen L[1] berisi harga minimum pertama. Langkah 2: Mulai elemen K =N, N-1, …, 3, bandingkan L[K] dengan L[K-1]. Jika L[K] < L[K-1], pertukarkan L[K] dengan L[K-1]. Pada akhir langkah 2, elemen L[2] berisi harga minimum kedua dan larik L[1..2] terurut. Langkah N-1: Mulai elemen K =N, bandingkan L[K] dengan L[K-1]. Jika L[K] < L[K-1], pertukarkan L[K] dengan L[K-1]. Pada akhir langkah N-1, elemen L[N-1] berisi harga minimum ke-(N-1) dan larik L[1..N-1] terurut menaik, sehingga elemen yang tersisa adalah L[N] yang tidak perlu lagi diurutkan karena hanya satusatunya. P.MARPAUNG SORTING(PENGURUTAN)
procedure UrutGelembung(input/output L: Larik; input N : integer) I : integer {pencacah untuk jumlah langkah} K : integer {pencacah untuk pengapungan pada setiap langkah} Temp : integer {peubah bantu untuk pertukaran} Algoritma 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]} Temp ← L[K] L[K] ← L[K-1] L[K-1] ← Temp endif endfor P.MARPAUNG SORTING(PENGURUTAN)
Procedure TukarData (Var a,b : Word); Var c : word; Begin c := a ; b := c ; End; Procedure Asc_Buble (data : array; jmldata : integer); Var i,j : integer ; For i := 2 to jmldata do For j := jmldata downto i do if data[j] < data[j-1] then TukarData (data[j],data[j-1] Sedang untuk pengurutan secara descending dilakukan dengan mengganti baris Ke-6 if data [j] > data [j-1] P.MARPAUNG SORTING(PENGURUTAN)
Iterasi ke-1 (Langkah 1) 22 10 15 3 8 2 22 10 15 3 2 8 22 10 15 2 3 8 22 10 2 15 3 8 22 2 10 15 3 8 2 22 10 15 3 8 Iterasi ke-2 (Langkah 2) 2 22 10 15 3 8 2 22 10 15 3 8 2 22 10 3 15 8 2 22 3 10 15 8 2 3 22 10 15 8 P.MARPAUNG SORTING(PENGURUTAN)
Iterasi ke-3(Langkah 3) 2 3 22 15 15 8 2 3 22 10 8 15 2 3 22 8 10 15 2 3 8 22 10 15 Iterasi ke-4 (Langkah 4) 2 3 8 22 10 15 2 3 8 22 10 15 2 3 8 10 22 15 Iterasi ke-5 (Langkah 5 2 3 8 10 22 15 2 3 8 10 15 22 terurut 2 3 8 10 15 22 P.MARPAUNG SORTING(PENGURUTAN)
Selection Sort Metode ini dilakukan dengan cara membandingkan elemen sekarang dengan elemen berikutnya,jika ditemukan elemen yang lebih kecil dari elemen sekarang maka dicatat posisinya dan kemudian tukar data dari posisi sekarang ke posisi yang terakhir dicatat tsb. P.MARPAUNG SORTING(PENGURUTAN)
Procedure Asc_Selection; Var min, pos : byte ; Begin for i := 1 to max – 1 do pos := i ; for j := i+1 to max do If data [j] < data [pos] then pos := j; If i <> pos then TukarData(data[i], data [pos]); End; Sedang untuk pengurutan secara descending dilakukan dengan mengganti baris Ke-8 if data [pos] < data [j] then pos := j; P.MARPAUNG SORTING(PENGURUTAN)
Tukar data ke -1 dengan data ke-6 3 > 2 6 3 < 8 4 22 10 15 3 8 2 Iterasi ke-1 (Langkah 1) Pembanding Posisi 10 > 3 4 10 < 15 2 1 Posisi data ke-1 (22) = 6 Tukar data ke -1 dengan data ke-6 3 > 2 6 3 < 8 4 i = 1 2 3 4 5 6 2 10 15 3 8 22 22 > 10 2 P.MARPAUNG SORTING(PENGURUTAN)
Tukar data ke -2 dengan data ke-4 3 < 22 4 3 < 8 4 Iterasi ke-2 (Langkah 2) Pembanding Posisi 10 > 3 4 10 < 15 2 Posisi data ke-4 (10) = 4 Tukar data ke -2 dengan data ke-4 3 < 22 4 3 < 8 4 i = 1 2 3 4 5 6 2 3 15 10 8 22 2 10 15 3 8 22 P.MARPAUNG SORTING(PENGURUTAN)
Tukar data ke -3 dengan data ke-5 8 < 22 5 10 > 8 5 Iterasi ke-3 (Langkah 3) Pembanding Posisi 15 > 10 4 Posisi data ke-3(15) = 5 Tukar data ke -3 dengan data ke-5 8 < 22 5 10 > 8 5 i = 1 2 3 4 5 6 2 3 8 10 15 22 2 3 15 10 8 22 Iterasi ke-4 (Langkah 4) Posisi data ke-4 (10) tetap pada posisinya =4 (tidak berubah) 10 < 22 4 10 < 15 4 P.MARPAUNG SORTING(PENGURUTAN)
Posisi data ke-5 (15) tetap pada posisinya =5 (tidak berubah) Iterasi ke-4 (Langkah 4) Pembanding Posisi Posisi data ke-5 (15) tetap pada posisinya =5 (tidak berubah) 15 > 22 5 2 3 8 10 15 22 i = 1 2 3 4 5 6 Terurut P.MARPAUNG SORTING(PENGURUTAN)