Interpolation Search adalah sebuah algoritma atau metode untuk
mencari nilai key yang diberikan dalam array diindeks yang telah
diperintahkan oleh nilai – nilai kunci. Metode ini didasari pada proses
pencarian nomor telepon pada buku telepon yang mana manusia mencari
melalui dengan nilai kunci yang terdapat pada buku. Teknik searching ini
dilakukan dengan perkiraan letak data. Rumus posisi relatif kunci
pencarian dihitung dengan rumus berikut ini :
- Jika data[posisi] > data yg dicari, high = pos – 1
- Jika data[posisi] < data yg dicari, high = pos + 1
Oke, sekian pendahuluan mengenai Interpolation Search, sekarang saya ingin membagi sesuatu yang mungkin bisa bermanfaat bagi sobat - sobat..
#include<stdio.h>
#include
<conio.h>
int
main()
{
//deklarasi variable
int A[10],
i,j,k,tkr,low,high,pos,tm;
//proses penginputan data
for(i=0;i<10;i++)
{
printf("data ke-%d
: ",i+1);
scanf("%d",&A[i]);
}
//Input data yang akan dicari
clrscr();
printf("\n Masukkan data yang
akan anda cari : ");
scanf("%d",&k);
//proses pengurutan data
for(i=0;i<10;i++){
for(j=i+1;j<10;j++){
if
(A[i]>A[j]){
tkr=A[i];
A[i]=A[j]; A[j]=tkr;
}
}
}
//proses pencarian data
tm=0;
high=9; low=0; do
{
pos = ((k - A[low]) /
(A[high] - A[low]))*(high-low) + low;
if (A[pos] == k){
tm++;
break;
}
if (A[pos] > k)
high =
pos-1;
else if (A[pos] < k)
low = pos +
1;
}
while(k >= A[low] && k
<= A[high]);
if (tm>0){
printf("
data %d yang dicari ada dalam array\n",k);
printf("
===================================");
}else{
printf("data
tidak ditemukan dalam array\n");}
//scanf("%d");
return(0);
}
hasil dari listing diatas jika kita menekan angka 7 maka hasilnya seperti pada gambar dibawah ini :
terima kasih sobatku semua sudah mau mampir ke blog saya ini..
selesai deh program Interpolation Search kita ini..
0 Response to "Tutorial C/C++ Metode Interpolation Search"
Post a Comment