Bubble Sort
Bubble sort (metode gelembung) adalah
metode/algoritma pengurutan dengan 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. Artinya Algoritma ini akan menggeser nilai yang terkecil atau terbesar (sesuai dengan jenis pengurutan, ascending atau descending)
ke posisi ujung dari daftar. Demikian seterusnya hingga semua daftar
dalam keadaan terurut. Proses dasar yang terjadi dalam algoritma ini
adalah proses pertukaran nilai (swapping).
------------------------- dibawah ini adalah ilustrasi bubble sort----------------------------


data awal : [5][2][4]
1. [5][2][4] bandingkan data ke 1 dengan data ke 2, bila data ke 1 lebih besar maka tukar.
2. [2][5][4] bandingkan data ke 1 dengan data ke 2, bila data ke 1 lebih besar maka tukar.
3. [2][4][5] bandingkan data ke 1 dengan data ke 2, bila data ke 2 lebih besar maka jangan di tukar.
4. [2][4][3] bandingkan data ke 1 dengan data ke 2, bila data ke 1 lebih besar maka tukar.
5. [2][3][4] bandingkan lagi data ke 1 dengan data ke 2, apakah sudah terurut atau belum
6. [2][3][4] bandingkan lagi data ke 1 dengan data ke 2, apakah sudah terurut atau belum
7. [2][3][4] data sudah terurut.
------------------------------contoh program bubble sort ------------------------------
# include stdio.h
# include conio.h
const int maks = 1000;
typedef int array [maks+1];
void masukan(array simpan, int n);
void BubbleSort(array simpan, int n);
void sebelum(array simpan, int n);
void sesudah(array simpan, int n);
int main()
{
int n;
array simpan;
printf("masukkan jumlah data yang diinginkan : ");
scanf("%d", &n);
masukan(simpan, n);
sebelum(simpan, n);
BubbleSort(simpan, n);
sesudah(simpan, n);
}
void masukan(array simpan, int n)
{
int c;
for(c=1; c<=n; c++)
{
printf("Data ke %d = ", c);
scanf("%d", &simpan[c]);
}
}
void BubbleSort(array simpan, int n)
{
int i, k, Help;
for (i=1; i<=n-1; i++)
{
for (k=n; k >= i+1; k--)
{
if (simpan[k] < simpan[k-1])
{
Help = simpan[k];
simpan[k] = simpan[k-1];
simpan[k-1] = Help;
}
}
}
}
void sebelum(array simpan, int n)
{
int c;
printf("\n\nData sebelum di urutkan : \n");
for (c=1; c<=n; c++)
{
printf("[%d]", simpan[c]);
}
}
void sesudah(array simpan, int n)
{
int c;
printf("\n\nData setelah di urutkan : \n");
for(c=1; c<=n; c++)
{
printf("[%d]",simpan[c]);
}
}
# include conio.h
const int maks = 1000;
typedef int array [maks+1];
void masukan(array simpan, int n);
void BubbleSort(array simpan, int n);
void sebelum(array simpan, int n);
void sesudah(array simpan, int n);
int main()
{
int n;
array simpan;
printf("masukkan jumlah data yang diinginkan : ");
scanf("%d", &n);
masukan(simpan, n);
sebelum(simpan, n);
BubbleSort(simpan, n);
sesudah(simpan, n);
}
void masukan(array simpan, int n)
{
int c;
for(c=1; c<=n; c++)
{
printf("Data ke %d = ", c);
scanf("%d", &simpan[c]);
}
}
void BubbleSort(array simpan, int n)
{
int i, k, Help;
for (i=1; i<=n-1; i++)
{
for (k=n; k >= i+1; k--)
{
if (simpan[k] < simpan[k-1])
{
Help = simpan[k];
simpan[k] = simpan[k-1];
simpan[k-1] = Help;
}
}
}
}
void sebelum(array simpan, int n)
{
int c;
printf("\n\nData sebelum di urutkan : \n");
for (c=1; c<=n; c++)
{
printf("[%d]", simpan[c]);
}
}
void sesudah(array simpan, int n)
{
int c;
printf("\n\nData setelah di urutkan : \n");
for(c=1; c<=n; c++)
{
printf("[%d]",simpan[c]);
}
}
--------------------------------------Tampilan program diatas-----------------------------------
1 komentar:
Best Casinos Near Casinos Near Casinos in San Francisco, CA
Find your nearest 하남 출장안마 casino in San Francisco by 파주 출장샵 following MapYRO, a land-based directory 김포 출장마사지 of land-based casinos. 안양 출장샵 Nearby 여주 출장안마 Casino: 2.5 mi.
Posting Komentar