Pengertian Binary Search C++
Program binary search bahasa c++ adalah sebuah algoritma pencarian dengan cara membagi data menjadi dua bagian setiap kali terjadi proses pencarian untuk menemukan nilai tertentu dalam sebuah larik (array) linear. Proses pencarian binary search c++ hanya dapat dilakukan pada kumpulan data yang sudah diurutkan terlebih dahulu.Sebuah pencarian biner mencari nilai tengah (median), melakukan sebuah pembandingan untuk menentukan apakah nilai yang dicari ada sebelum atau sesudahnya, kemudian mencari setengah sisanya dengan cara yang sama. Pencarian Biner (Binary Search) dilakukan untuk :
a) Memperkecil jumlah operasi pembandingan yang harus dilakukan antara data yang dicari dengan data yang ada di dalam tabel, khususnya untuk jumlah data yang sangat besar ukurannya.
b) Beban komputasi pun lebih kecil karena pencarian dilakukan dari depan, belakang dan tengah.
c) Prinsip dasarnya ialah melakukan proses pembagian ruang searching secara berulang-ulang sampai data ditemukan atau sampai ruang pencarian tidak dapat dibagi lagi (itu berati ada kemungkinan data tidak ditemukan).
d) Dan Syarat utamanya untuk pencarian biner dalam program bahasa C++ sederhana ini adalah data di dalam tabel harus sudah terurut.
Algoritma Binary Search C++
awal=0;
akhir=d-1;
do
{
tengah=(awal+akhir)/2;
if(bin<data[tengah])
akhir=tengah-1;
else
awal=tengah+1;
}
while ((akhir>=awal)&&(data[tengah]!=bin));
if(data[tengah]==bin)
{
cout << "Data "<<bin<<" Pada Posisi "<<tengah+1;
}
penjelsan :
1. awal=0 ini berarti index array berawal dari 0
2. akhir=d-1 jumlah data dikurang 1 untuk membaca data dari angka 1 karena array diawali dengan 0.
3. jadi tengah adalah data yang terletak di tengah dari kumpulan data jadi untuk mencari data tengah program akan melakukan perhitungan (awal+akhir)/2 jika data tengah telah ditemukan maka jika data yang dicari (bin) lebih kecil dari (data[tengah]) maka akhir =tengah-1 jika (bin) lebih besar dari (data[tengah]) maka awal=tengah+1
4. program yang ada di penjelasan ke 3 akan dijalankan dengan persyaratan akhir>=awal dan data [tengah]!=bin.
5. jika data[tengah]==bin maka data ditemukan.
Contoh Program Binary Search C++
#include <iostream>
using namespace std;
int main ()
{
int d,i,awal,akhir,tengah,bin;
int data[10];
cout << "Masukkan Jumlah Data = "; cin >>d;
for (i=0; i<d;i++)
{
cout << "Data Ke- "<<i+1<<" = "; cin >>data[i];
}
cout << "Mencari data dengan binary = "; cin >>bin;
awal=0;
akhir=d-1;
do
{
tengah=(awal+akhir)/2;
if(bin<data[tengah])
akhir=tengah-1;
else
awal=tengah+1;
}
while ((akhir>=awal)&&(data[tengah]!=bin));
if(data[tengah]==bin)
{
cout << "Data "<<bin<<" Pada Posisi "<<tengah+1;
}
else
cout << "Data Tidak Ditemukan"<<endl;
cout<<endl;
}
Tidak ada komentar:
Posting Komentar