Interpolation Search

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, high = pos – 1
- 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]=data[low]&&cari<=data[high]); if(flag==1){ cout<<"Data ditemukan\n"; } else{ cout<<"Data tidak ada\n"; }

Posted in . Bookmark the permalink. RSS feed for this post.

Leave a Reply

Search

Support by Blogger ITN | Converted by LiteThemes.com