Monday, April 16, 2012

BINARY SEARCH2


#include <iostream.h>
#include <conio.h>


int cari_biner(int array[],int ukuran, int elemen);


void main()
{
const int ukuran=10;
int array[ukuran]={1,2,3,4,5,6,7,8,9,10};
cout<<"\n  Isi dari array yang tersedia : "<<endl;
for(int i=0;i<ukuran;i++)
cout<<"  "<<array[i];


int elemen;
int tanda;
cout<<"\n  -------------------------------";
cout<<"\n\n Masukkan data yang dicari = ";
cin>>elemen;


tanda= cari_biner(array,ukuran,elemen);
if (tanda!=-1)
cout<<"\n Data ditemukan pada posisi : array["<<
tanda<<"],"<<" atau deret ke-"<<(tanda+1);


else
cout<<"\n Data tidak ditemukan !!";
getch();


}


int cari_biner(int array[],int ukuran,int elemen)
{
int start=0;
int end=ukuran - 1;
int middle;
int posisi=-1;
middle=(start + end ) / 2;
do
{
if(elemen<array[middle])
end=middle-1;
else if (elemen>array[middle])
start=middle+1;
middle=(start+end)/2;


}
while(start<=end && array[middle]!=elemen);


if(array[middle]==elemen)
posisi=middle;
return posisi;


}

No comments:

Post a Comment