Senin, 23 Mei 2011

BUBLE SORT

Ø  BUBLE SORT

            Bubble sort adalah sederhana algoritma sorting. Bekerja dengan berulang kali melakukan melalui daftar akan di sortir, membandingkan dua item sekaligus dan swapping mereka jika mereka berada di salah pesanan. Yang melewati daftar diulang sampai swap tidak diperlukan, yang menunjukkan bahwa daftar disaring. Algoritma yang mendapatkan namanya dari jalan kecil elemen "gelembung" ke bagian atas daftar. Karena hanya menggunakan perbandingan untuk beroperasi pada elemen, ia adalah perbandingan menyortir. 
Metode Bubble Sort
Perhatikan bahwa jumlah pertukaran dan perbandingan data tidaklah tetap, perbedaan tergantung pada keadaan awal data setelah diacak. Tabel berikut memperlihatkan tabulasi hasil visualisasi menggunakan metode bubble sort.
Pengacakan
Jumlah Total
Pertukaran Data
Perbandingan Data
1
155
279
2
127
272
3
137
245
4
142
297
5
151
294
6
138
285
7
178
300
8
165
272
9
156
285
10
175
300
Rata-rata
152
283
Jumlah rata-rata pertukaran untuk 10 kali pengacakan adalah 152 kali, sedangkan rata-rata jumlah perbandingan adalah sebanyak 283 kali. Tetapi bila data pada awalnya terurut, maka untuk 25 jumlah data, jumlah pertukaran data sebanyak 0 kali dengan jumlah perbandingan sebanyak 24 kali.


contoh program

#include <cstdlib>
#include <iostream>

using namespace std;
void tampilkan_larik(int data[], int n){
     int i;
     for (i = 0; i < n; i++)
     cout << data[i] << " ";
     cout << "\n";
     }
    
 void bubble_sort(int data[], int n){
      int tahap, j, temp;
      int ada_penukaran;
     
      tahap = 1;
      ada_penukaran = 1;
      while (tahap < n-1 && ada_penukaran){
            ada_penukaran = 0;
            for (j = 0; j<n-tahap; j++)
            if (data[j] > data[j+1]){
                        ada_penukaran = 1;
                        temp = data[j];
                        data[j] = data[j+1];
                        data[j+1]=temp;
                        }
                        cout << "Tahap" << tahap << ":";
                        tampilkan_larik(data, n);
                       
                        tahap++;
                        }
                        }
                           
int main()
{
    char JUM_DATA = 6;
    int i;
    int data[] = {6,3,10,2,9,7};
    bubble_sort(data, JUM_DATA);
    cout<<"Tampilan Hasil pengurutan:\n";
    tampilkan_larik(data, JUM_DATA);
   
    system("PAUSE");
    return EXIT_SUCCESS;
}

Tidak ada komentar:

Posting Komentar