POLITEKNIK SEKAYU

http://polsky.ac.id/

Selasa, 14 Januari 2014

bubble sort



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