Kamis, 07 April 2016

Algoritma,Flowchart, dan contoh Code program Interpolation Search



Algoritma Interpolation Search 

1.     Mulai
2.      Memasukan indeks
3.      Mencari data menggunakan keyword
4.      Posisi  = ((cari_data - data[awal])*(akhir-awal)+awal) / (data[akhir]-data[awal])
5.      Jika sama dengan keyword yang dimasukan program selesai
  jika tidak  bandingkan dengan (data[posisi] < cari_data) awal = posisi + 1
6.      Ulangi langkah 4&5 sampai hasilnya sama keyword
7.      Jika data[posisi] > cari_data,  data tidak ditemukan program selesai
8.      Selesai.


Flowchart




CODE INTERPOLATION SEARCH


#include <iomanip>
#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
 int data[50];
 int n,cari_data, posisi, awal, akhir, proses;
 bool berhenti = false;
    cout << " I N T E R P O L A T I O N   S E A R C H "; cout<<endl;
    cout<<"Input Data (maks.50) : "; cin>>n; cout<<endl;
    for(int i=0; i<n; i++)
        {
            cout<<"Data ke "<<i+1<<": "; cin>>data[i];
        }
    cout<<"\nData : ";
    for(int i = 0;i<n; i++)

 cout<<setw(3)<<data[i];
 cout<<endl<<endl;

 cout << "Data yang dicari : ";
 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 " << 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.\n";
        berhenti = true;
    }
 }

    return 0;
}



Output code


Tidak ada komentar:

Posting Komentar