BUBBLE SORT
• PENGERTIAN
BUBBLE SORT
• Bubble
Sort (metode gelembung)
adalah metode pengurutan dengan cara melakukan penukaran data dengan tepat
disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi
tertentu tidak ada lagi perubahan. Jika tidak ada perubahan berarti data sudah
terurut. Disebut pengurutan gelembung karena masing-masing kunci akan dengan
lambat menggelembung ke posisinya yang tepat.
• KELEBIHAN
DAN KELEMAHAN METODE BUBBLE SORT
• Kelebihan :
1. Metode Bubble Sort merupakan yang paling simple
2. Metode Bubble Sort muda di
pahami algoritmanya
• Kelemahan :
Meskipun
simpel metode Bubble Sort merupakan metode pengurutan yang paling tidak
efisien. Kelemahan Bubble Sort adalah
pada saat mengurutkan data yang sangat besar akan mengalami kelambatan luar
biasa, atau dengan kata lain kinerja memburuk cukup signifikan ketika data yang
diolah jika data cukup banyak. Kelemahan
lain adalah jumlah pengulangan akan tetap sama jumlahnya walaupun data
sesungguhnya sudah cukup terurut. Hal ini disebabkan setiap data dibandingkan
dengan setiap data yang lain untuk menentukan posisinya.
Algoritma Dari Bubble Sort
• Membandingkan
data ke-i dengan data ke-(i+1) (tepat bersebelahan). Jika tidak sesuai maka
tukar (data ke-i = data ke-(i+1) dan data ke-(i+1) = data ke-i). Apa maksudnya
tidak sesuai? Jika kita menginginkan algoritme menghasilkan data dengan urutan
ascending (A-Z) kondisi tidak sesuai adalah data ke-i > data ke-i+1, dan
sebaliknya untuk urutan descending (A-Z).
• Membandingkan
data ke-(i+1) dengan data ke-(i+2). Kita melakukan pembandingan ini sampai data
terakhir. Contoh: 1 dgn 2; 2 dgn 3; 3 dgn 4; 4 dgn 5 … ; n-1 dgn n.
• Selesai
satu iterasi, adalah jika kita sudah selesai membandingkan antara (n-1) dgn n.
Setelah selesai satu iterasi kita lanjutkan lagi iterasi berikutnya sesuai
dengan aturan ke-1. mulai dari data ke-1 dgn data ke-2, dan seterusnya.
• Proses
akan berhenti jika tidak ada pertukaran dalam satu iterasi
Contoh
program Bubble Sort
#include
<stdio.h>
#define N 20
int bubble(int
n);
int
i,j,A[N];
main()
{
int jml;
printf("\t METODE BUBBLE
SORT \n\n");
printf("Masukkan jumlah
bilangan: ");
scanf("%d",&jml);
printf("\n");
// input data
for
(i=0;i<jml;i++)
{
printf("Bilangan
ke %d : ",i+1);
scanf("%d",&A[i]);
}
printf("\n");
// mengurutkan data
bubble(jml);
// menampilkan data
printf("Data
yang sudah terurut : \n");
for
(i=0;i<jml;i++)
{
printf("%d\n",A[i]);
}
}
// fungsi bubble
int bubble(int n)
{
int temp;
for (i=1;i<=n-1;i++)
{
for (j=i;j<n;j++)
{
if
(A[i-1]>A[j])
{
temp = A[i-1];
A[i-1] = A[j];
A[j] = temp;
}}}
Outputnya:
Tidak ada komentar:
Posting Komentar