" Algoritma pencarian yang lebih efisien dari pada algoritma Sequential Search. Algoritma ini tidak perlu menjelajahi setiap elemen dari tabel. Algoritma ini bekerja dengan cara memilih record dengan index tengah dari tabel dan membandingkannya dengan record yang hendak dicari, jika record tersebut </>, maka tabel tersebut dibagi 2 & bagian tabel yang bersesuaian akan diproses kembali secara rekursif.
contoh program :
#include<iostream.h>
#include<conio.h>
#include<conio.h>
main()
{
int a[5],i,j,k,tkr,top,bottom,middle,tm;
for(i=0;i<5;i++)
{
cout<<"data ke ["<<i<<"] =";cin>>a[i];
}
cout<<endl;
cout<<"Masukkan data yang akan anda cari : ";
cin>>k;
for(i=0;i<5;i++)
{
for(j=i+1;j<5;j++)
{
if(a[i]<>a[j])
{
tkr=a[i];
a[i]=a[j];
a[j]=tkr;
}
}
}
tm=0;top=9;bottom=0;
while(top>=bottom)
{
middle=(top+bottom)/2;
if(a[middle]==k)
{
tm++;
}
if(a[middle]<k)
{
bottom=middle+1;
}
else
{
top=middle-1;
}
if(tm>0)
{
cout<<"Data"<<k<<"yang dicari ada dalam array";
}
else
{
cout<<"Data tidak ditemukan dalam array";
}
getch();
}
No comments:
Post a Comment