Pencarian
Interpolasi
1. Mulai
2. Menentukan index dan masukkan data yang
diinginkan
0 1 2 3 4 5 6
22 23 24 25 26 27 28
3. Masukkan
Keyword : 26
4. Mengetahui rumus interpolasi
5. Apabila data hasilnya sudah ditemukan menggunakan
rumus interpolasi maka akan ditambahkan dan pencarian dihentikan karena keyword
sudah ditemukan.
6. Selesai.
CONTOH KODE PROGRAM
#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;
int main() {
int data[200];
int cari_data, posisi, awal, akhir, proses,n;
bool berhenti = false;
cout<<"\t\t\t\t<<PENCARIAN INTERPOLASI>>"<<endl<<endl;
cout<<"\t\t\t\t*************************"<<endl<<endl;
cout<<"Input Jumlah Data = "; cin>>n; cout<<endl;
for(int x=0; x<n; x++)
{cout<<"Data ke-"<<x+1<<": \t"; cin>>data[x];}
cout<<"Data awal: ";
for(int x = 0; x<n; x++)
cout<<setw(3)<<data[x];
cout<<endl<<endl;
cout<<"Data yang di cari : "; cin>>cari_data;
awal = 0; akhir =n; proses = 0;
while(berhenti != true)
{
proses++;
posisi=(((cari_data-data[awal])*(akhir-awal))/(data[akhir]-data[awal])+awal);
if(data[posisi] == cari_data)
{
cout<<"Data "<<cari_data<<" Pada posisi indexs ke- "<<posisi<<endl;
cout<<"Proses pencarian sebanyak : "<<proses<< endl; berhenti = true;
}
else if(data[posisi]<cari_data)
{awal=posisi+1;}
else{
cout<<"Data "<<cari_data<<" Tidak Ditemukan !!!"; berhenti=true;
}
}
return 0;
}
HASIL OUTPUT :
0 komentar:
Posting Komentar