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.
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).
1. Pertama-tama 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.2. Kemudian kita cari posisi data tengah dengan rumus posisi tengah yaitu = (posisi awal + posisi akhir ) div 2.
3. Lalu data yang di cari akan dibandingkan dengan data tengah
a. Jika sama, data ditemukan, Proses selesai.
Listing Program :
#include<iostream>
using namespace std;
int main () {
int n, angka[12], kiri, kanan, tengah, temp, key;
bool ketemu = false;
cout<<"========================================="<<endl;
cout<<"=========PROGRAM BINARY SEARCH C++==========="<<endl;
cout<<"========================================="<<endl<<endl;
cout<<"Masukan jumlah data : ";
cin>>n;
for(int i=0; i<n; i++)
{
cout<<"Angka ke - ["<<i<<"] : ";
cin>>angka[i];
}
for (int i=0; i<n; i++)
{
for(int j=0; j< n-i-1; j++)
{
if(angka [j] > angka [j+1])
{
temp=angka[j];
angka[j]=angka[j+1];
angka[j+1]=temp;
}
}
}
cout<<"Data yang telah diurutkan adalah : ";
for(int i=0; i<n; i++)
{
cout<<angka[i]<<" ";
}
cout<<"\n Masukan angka yang dicari : ";
cin>>key;
kiri=0;
kanan=n-1;
while(kiri<=kanan)
{
tengah=(kiri + kanan)/2;
if(key == angka[tengah])
{
ketemu=true;
break;
}
else if (key < angka [tengah])
{
kanan = tengah -1;
}
else
{
kiri = tengah +1;
}
}
if (ketemu == true)
cout<<"Angka ditemukan!";
else
cout<<"Angka tidak ditemukan";
return 0;
}
Hasil Running :
Referensi: https://www.hardifal.com/2018/10/searching-metode-binary-search-dan-program-cpp.html
No comments:
Post a Comment