Minggu, 02 Oktober 2016

Algoritma pengurutan Bubble sort

Algoritma bubble sort (pengurutan apung) terinsipari dari gelmbung sabun yang berada diatas permukaan air. Apabila kita ingin larik terurut menaik, maka elemen larik yang berharga paling kecil “diapungkan”, artinya diangkat ke “atas” (keujung kiri larik) melalui proses pertukaran.
Contoh :  Pengurutan Bubble sort dengan data sebagai beriktu :
23
34
8
5
50
15
1
2
3
4
5
6

          <-- arah pembandingan

Proses 1 :




Elemen yang dibandingkan
 Pertukaran ?
Hasil sementara

L[6] < L[5] ? (15 < 50 ?)
     Ya
23, 34, 8, 5, 15, 50

L[5] < L[4] ? (15 < 5 ?)
   Tidak
23, 34, 8, 515, 50

L[4] < L[3] ? (5 <  8 ?)
      Ya
23, 34, 5, 815, 50

L[3] < L[2] ? (5 <  34 ?)
      Ya
23, 5, 34, 8, 15, 50

L[2] < L[1] ? (5 <  23 ?)
      Ya
5, 23, 34, 8, 15, 50

Hasil akhir proses 1 :
5
23
34
8
  15
50
1
2
3
4
5
6
                                               
Proses 2 :




Elemen yang dibandingkan
Pertukaran ?
Hasil sementara

L[6] < L[5] ? (50 < 15 ?)
Tidak
5, 23, 34, 8, 15, 50

L[5] < L[4] ? (15 < 8 ?)
Tidak
5, 23, 34, 8, 15, 50

L[4] < L[3] ? (8 <  34 ?)
Ya
5, 23, 8, 34, 15, 50

L[3] < L[2] ? (8 <  23 ?)
Ya
5, 8, 23, 34, 15, 50

Hasil akhir proses 2 :
5
8
23
34
  15
50
1
2
3
4
5
6

 



Proses 3 :




Elemen yang dibandingkan
Pertukaran ?
Hasil sementara

L[6] < L[5] ? (50 < 15 ?)
Tidak
5, 8, 23, 34, 15, 50

L[5] < L[4] ? (15 < 34 ?)
Ya
5, 8, 23, 15, 34, 50

L[4] < L[3] ? (15 <  23 ?)
Ya
5, 8, 15, 23, 34, 50

Hasil akhir proses 3 :
5
8
15
23
  34
50
1
2
3
4
5
6



Proses 4 :




Elemen yang dibandingkan
Pertukaran ?
Hasil sementara

L[6] < L[5] ? (50 < 34 ?)
Tidak
5, 8, 15, 23, 34, 50

L[5] < L[4] ? (34 < 23 ?)
Tidak
5, 8, 15, 23, 34, 50

Hasil akhir proses 4 :
5
8
15
23
  34
50
1
2
3
4
5
6



Proses 5 :




Elemen yang dibandingkan
Pertukaran ?
Hasil sementara

L[6] < L[5] ? (50 < 34 ?)
Tidak
5, 8, 15, 23, 34, 50

Hasil akhir proses 5 :
5
8
15
23
  34
50
1
2
3
4
5
6



Hasil akhir proses 5 menyisakan satu elemen (yaitu 50) yang tidak perlu diurutkan lagi, maka pengurutan selesai.

Procedure Bubblesort (input/output L : Larikint, input n : integer)
{Mengurutkan larik L[1..n] sehingga terurut menaik dengan metode Bubble Sort}
{I.S. : Elemen larik L sudah terdefinisi nilai-nilainya }
{F.S. : Elemen larik L terurut menaik sedemikian sehingga L[1] < L[2] < . . . < L[n] }
Kamus
                I               : integer               {Pencacah untuk jumlah langkah}
                K             : integer               {Pencacah, untuk Bubble 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
                Endfor


Sumber : Munir, Renaldi. (2011). Algoritma & Pemrogramman Dalam Bahasa Pascal dan C. (edisi revisi). Bandung ; INFORMATIKA.

Related Posts:

  • Penjadwalan Pelanggan       2.      Minimisasi Waktu di dalam Sistem (Penjadwalan)       Persoalan: Sebuah server (… Read More
  • Job Scheduling dengan Deadline Normal 0 false false false IN X-NONE X-NONE … Read More
  • Algoritma Greedy Algoritma Greedy Pengetian: Algoritma Greedy merupakan metode yang paling populer untuk memecahkan persoalan optimasi. Persoa… Read More
  • Knapsack Problem METODE GREEDY banyak digunakan dalam berbagai penyelesaian maslah, antara lain adalah : 1.    Optimal Storage on Tapes Problem 2.   … Read More
  • ALGORITMA GREEDY Secara Harfiah Greedy artinya rakus atau tamak, sifat yang berkonotasi negatif. Orang yang memiliki sifat ini akan mengambil sebanayak mungkin atau m… Read More

0 komentar:

Posting Komentar