Salah satu syarat agar binary search dapat dilakukan adalah data sudah dalam keadaan urut. Dengan kata lain, apabila data belum dalam keadaan urut, binary search tidak dapat dilakukan.
Prinsip dari binary search dapat dijelaskan sebagai berikut :
a.Mula-mula diambil posisi awal 0 dan posisi akhir = N - 1, kemudian dicari posisi data tengah dengan rumus (posisi awal + posisi akhir) / 2. Kemudian data yang dicari dibandingkan dengan data tengah.
b.Jika lebih kecil, proses dilakukan kembali tetapi posisi akhir dianggap sama dengan posisi tengah –1.
c.Jika lebih besar, proses dilakukan kembali tetapi posisi awal dianggap sama dengan posisi tengah +1. Jika data sama, berarti ketemu.
Berikut adalah script contoh programnya
#include <iostream.h>
main() {
int data[7] = {10,13,17,34,58,67,99};
int left,right,middle,cari;
int N = 7, flag = 0;
left = 0, right = N-1;
cout<<"Masukan data yang di cari?";
cin>>cari;
while(left<=right && flag==0) {
middle=(left+right)/2;
cout<<"data tengah = "<<middle<<endl;
if(data[middle]==cari){
flag=1;
}
else if(cari < data[middle]){
cout<<"cari di kiri\n";
right=middle-1;
}
else {
left=middle+1;
cout<<"cari di kanan\n";
}
if(flag == 1){
cout<<"Data ada\n";
}
else{
cout<<"Data tidak ada\n";
}
}
}
Search
Categories
- Part I : Perkenalan (4)
- Part II : Operator (3)
- Part III : Percabangan (materi) (2)
- Part III : Percabangan (program) (4)
- Part IV : Perulangan (meteri) (3)
- Part IV : Perulangan (program) (3)
- Part V : Array (materi) (1)
- Part V : Array (program) (2)
- Penerapan (6)
- Pointer (2)
- Searching (pencarian) (3)
- Typedef (1)
mantaps sekali tutorialnya ... Lanjutkan Sob, semoga sukses ..!!!
ReplyDelete