Pada metode sorting apapun pasti ada 2 perintah yang harus dikerjakan, yaitu perbandingan dan penukaran, ketika data yang dibandingkan diketahui tidak urut maka akan dilakukan penukaran yang akan membuat data urut (sorting)
nah, pada artikel kali ini aku akan menjelaskan sedikit tentang code sorting dan bagaimana codenaya yang ditulis dalam cpp
sebelum menuju metode sorting, kita perlu mengetahui tentang metode penukarannya dulu. Untuk code penukaran adalah sama untuk setiap sorting yaitu
tukar adalah nama functionnya dan void berarti dia tidak memiliki nilai kembalian, walau tidak mempunyai nilai kembalian namun data a dan b akan bertukar posisi ketika fungsi tukar ini di panggil
oke, kita sekarang masuk ke metode bubble sort
metode gelembung/bubble sort dapat dituliskan sebagai berikut
bila alogaritma diatas di aplikasikan dalam bentuk cpp maka akan menjadi
kita juga dapat menuliskannya dalam bentuk perulangan for
untuk dapat menjalankan code tersbut tentunya kita harus menginisialisasi variabel data dan juga variabel n. untuk variabel n kita akan menentukannya belakangan karena n harus sama dengan jumlah data yang ada di variabel data. jika kita inputkan variabel data dengan int data [] = {1,10,9,4,3,5,7,3,2,2}; maka kita akan memasukan nilai n dengan 10
sebagai contoh kita memasukan niali array data seperti diatas dan kita akan menggunakan perulangan dengan while maka codenya akan menjadi
kita juga dapat menuliskannya dengan metode perulangan for
kedua code tersebut akan menghasilkan hasil yang sama
utuk melihat kemampuan dari bubble sort dalam mengurutkan data dapat dilihat di link http://www.sorting-algorithms.com/bubble-sort
nah, pada artikel kali ini aku akan menjelaskan sedikit tentang code sorting dan bagaimana codenaya yang ditulis dalam cpp
sebelum menuju metode sorting, kita perlu mengetahui tentang metode penukarannya dulu. Untuk code penukaran adalah sama untuk setiap sorting yaitu
void tukar (int *a, int *b) { int tmp; tmp = *a; *a = *b; *b = tmp; }
tukar adalah nama functionnya dan void berarti dia tidak memiliki nilai kembalian, walau tidak mempunyai nilai kembalian namun data a dan b akan bertukar posisi ketika fungsi tukar ini di panggil
oke, kita sekarang masuk ke metode bubble sort
metode gelembung/bubble sort dapat dituliskan sebagai berikut
1 i ← 0 2 selama (i < N-1) kerjakan baris 3 sampai dengan 7 3 j ← N - 1 4 Selama (j >= i) kerjakan baris 5 sampai dengan 7 5 Jika (Data[j-1] > Data[j]) maka tukar Data[j-1] dengan Data[j] 6 j ← j - 1 7 i ← i + 1
bila alogaritma diatas di aplikasikan dalam bentuk cpp maka akan menjadi
int i=0,j; while (i<n-1) { j = n-1; while (j>=i) { if (data[j-1]>data[j]) { tukar(&data[j-1],&data[j]); } j--; } i++; }
kita juga dapat menuliskannya dalam bentuk perulangan for
for (int i=0;i<n-1;i++) { for (int j=n-1;j>=i;j--) { if (data[j-1]>data[j]) { tukar(&data[j-1],&data[j]); } } }
untuk dapat menjalankan code tersbut tentunya kita harus menginisialisasi variabel data dan juga variabel n. untuk variabel n kita akan menentukannya belakangan karena n harus sama dengan jumlah data yang ada di variabel data. jika kita inputkan variabel data dengan int data [] = {1,10,9,4,3,5,7,3,2,2}; maka kita akan memasukan nilai n dengan 10
sebagai contoh kita memasukan niali array data seperti diatas dan kita akan menggunakan perulangan dengan while maka codenya akan menjadi
#include <iostream> #include <conio> int data [] = {1,10,9,4,3,5,7,3,2,2}; int n = 10; void tukar (int *a, int *b) { int tmp; tmp = *a; *a = *b; *b = tmp; } main () { int i=0,j; while (i<n-1) { j = n-1; while (j>=i) { if (data[j-1]>data[j]) { tukar(&data[j-1],&data[j]); } j--; } i++; } for (int i=0;i<n;i++) { cout<<data[i]<<" "; } getch(); }
kita juga dapat menuliskannya dengan metode perulangan for
#include <iostream> #include <conio> int data [] = {1,10,9,4,3,5,7,3,2,2}; int n = 10; void tukar (int *a, int *b) { int tmp; tmp = *a; *a = *b; *b = tmp; } main () { for (int i=0;i<n-1;i++) { for (int j=n-1;j>=i;j--) { if (data[j-1]>data[j]) { tukar(&data[j-1],&data[j]); } } } for (int i=0;i<n;i++) { cout<<data[i]<<" "; } getch(); }
kedua code tersebut akan menghasilkan hasil yang sama
Sorting dengan Metode Bubble Sort |
utuk melihat kemampuan dari bubble sort dalam mengurutkan data dapat dilihat di link http://www.sorting-algorithms.com/bubble-sort
Metode Bubble sort memiliki jumlah perbandingan (= C) yang tetap yaitu C= (N.N - N ) /2
Lalu untuk penukaran( =M) data tergantung pada keadaan data
Mmin = 0
Mrata-rata = 3(N.N - N) / 4
Mmax = 3(N.N - N) /2
{ 0 Komentar... read them below or add one }
Posting Komentar