Teknik ini dilakukan pada data yang sudah terurut berdasarkan kunci tertentu. Teknik searching ini dilakukan dengan perkiraan letak data. Contoh ilustrasi: jika kita hendak mencari suatu kata di dalam kamus telepon, misal yang berawalan dengan huruf J, maka kita tidak akan mencarinya dari awal buku, tapi kita langsung membukanya pada 1/3 atau 1/4 dari tebal kamus.
Rumus posisi relatif kunci pencarian dihitung dengan rumus:
- Jika data[posisi] < data yg dicari, low = pos + 1 Berikut adalah contoh scriptnya
#include <iostream.h>
#include <math.h>
main() {
int data[7] = {10,13,17,34,58,67,99};
int low, high, cari, posisi;
float posisi1;
int N = 7, flag=0;
low=0, high=N-1;
cout<<"Masukan data yang di cari?”;cin>>cari;
do {
posisi1 = (cari-data[low])/(data[high]-data[low])*(high-low)+low;
posisi = floor(posisi1); //pembulatan ke bawah
if(data[posisi] == cari) {
flag =1;
break;
}
if(data[posisi]>cari){
high=posisi-1;
}
else if (data[posisi]