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..
Sumber : aslangpemrograman.blogspot.com
0 komentar:
Posting Komentar