Program C++ Binary Search
Program C++ Binary Search - Metoda Pencarian Biner ( Binary Search) hanya bisa diterapkan jika data array sudah terurut. Pengurutan Array bisa menggunakan jenis sorting descending atau asscending. Kelebihan dari Searching dengan metode Binary Sort adalah untuk pencarian data yang jumlahnya banyak, waktu pencarian relatif cepat. selain itu beban komputasi juga lebih kecil karena pencarian dilakukan dari depan, belakang, dan tengah. namun ada pula kekurangannya, yaitu data harus disorting dahulu dan Algoritma lebih rumit, tidak baik untuk data berangkai.
Langsung ke program C++ untuk prakteknya...
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
system("color f2");
int X,i,j,k,p;
int L[10] = {12,14,15,17,23,25,45,67,68,70};
/* Menentukan apakah terurut menaik atau menurun */
/* variabel p digunakan untuk kode, apakah menaik atau menurun */
/* jika p = 0, maka data terurut menaik */
/* jika p = 1, maka data terurut menurun */
if (L[0]<L[9])
{
printf("Data terurut menaik \n");
p = 0;
}
else
{
printf("Data terurut menurun \n");
p = 1;
}
/* input data X yang akan dicari */
printf("Data yang akan dicari = ");scanf("%d",&X);
/* penentuan indeks awal dan akhir semula */
i = 0;
j = 9;
/* proses perulangan untuk menentukan nilai tengah k */
do{
k = (i + j) / 2;
if (p==0) // jika data terurut menaik
{
if (L[k]==X)
{
printf("Data ditemukan di elemen %d",k);
cout<<"\n\n";
system("PAUSE");
return EXIT_SUCCESS; // langsung keluar program
}
else if (L[k]< X)
{
i = k;
}
else
{
j = k;
}
}
else // jika data terurut menurun
{
if (L[k]==X)
{
printf("Data ditemukan di elemen %d",k);
cout<<"\n\n";
system("PAUSE");
return EXIT_SUCCESS; // langsung keluar program
}
else if (L[k]> X)
{
i = k;
}
else
{
j = k;
}
}
}
while(k!=0); // sampai nilai k = 0, iterasi berakhir
printf("Data tidak ditemukan!");
cout<<"\n\n";
system("PAUSE");
return EXIT_SUCCESS;
}