0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan7 halaman

Algoritma Pencarian Interpolasi C++

Dokumen ini menjelaskan program Interpolation Search dalam bahasa C++, yang mencakup penginputan data, pengurutan, dan pencarian data dalam array. Program ini mengurutkan array berisi 4 elemen dan mencari elemen tertentu menggunakan metode pencarian interpolasi. Jika elemen ditemukan, program akan mencetak bahwa data ada dalam array, jika tidak, akan mencetak bahwa data tidak ditemukan.

Diunggah oleh

Lundu Nahampun
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan7 halaman

Algoritma Pencarian Interpolasi C++

Dokumen ini menjelaskan program Interpolation Search dalam bahasa C++, yang mencakup penginputan data, pengurutan, dan pencarian data dalam array. Program ini mengurutkan array berisi 4 elemen dan mencari elemen tertentu menggunakan metode pencarian interpolasi. Jika elemen ditemukan, program akan mencetak bahwa data ada dalam array, jika tidak, akan mencetak bahwa data tidak ditemukan.

Diunggah oleh

Lundu Nahampun
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd

Program Interpolation Search :

#include<iostream>
using namespace std;
int main()
{
//deklarasi variabel
int A[4],i,j,k,tkr,low,high,pos,tm;
//proses penginputan data
for(i=0;i<4;i++)
{
printf("data ke - %d : ",i+1);
scanf("%d",&A[i]);
}
//input data yang akan dicari
printf("Masukkan data yang akan anda cari : ");
scanf("%d",&k);

//proses pengurutan data


for(i=0;i<4;i++)
{
for (j=i+1;j<4;j++)
{
if (A[i]>A[j])
{
tkr=A[i];
A[i]=A[j];
A[j]=tkr;
}
}
}

//proses pencarian data


tm=0;
high=3;
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);
}
//jika tidak ditemukan
else
{
printf("data tidak ditemukan dalam array\n");
}

Output :

Penjelasan :
A[I] = [2 5 3 8 ]
//proses penginputan data

for(i=0;i<4;i++)
selama I=0i<4benar
maka data ke 1 cetak 2

i++
i=1
for(i=0;i<4;i++)
selama i=1i<4benar
maka data ke 2 cetak 5
i++
i=2
for(i=2;i<4;j++)
selama i=2i<4benar
maka data ke 3 cetak 3

i++
i=3
for(i=3;i<4;j++)
selama i=2i<4benar
maka data ke 4 cetak 8

i++
i=4
for(i=0;i<4;j++)
selama i=4i<4salah
maka selesai

//proses pengurutan data [2,5,3,8]


Iterasi 1
For(i=0;i<4;i++)
Selama i=0
0<4benar

Sub Iterasi 1.1


For(j=i+1;j<4;j++)
Selama j=0+1j=1
1<4benar
Sub Iterasi 1.2
If(A[i]>A[j])
Jika (A[i]>A[j])
Jika 2>5  salah

J++
J=2
2<4  benar
If(A[i]>A[j])
If(A[i]>A[2])
Jika 2>3  salah

J++
J=3
3<4  benar
If(A[i]>A[j])
If(A[i]>A[3])
Jika 2>8  salah

J++
J=4
4<4 =salah

//iterasi 2
I=1
J=4
I<4  benar

//sub iterasi 2.1


For(j=i+1;j<4++)
Selama j=1+1 ;  j=2
2<4 benar

//sub iterasi 2.2


If(A[i]>A[j])
Jika A[i]>A[j]
Jika 5>3  benar

//sub iterasi 2.3


Tkr=A[i]tkr=A[1]tkr=5
A[1]=A[2]A[1]=3
A[2]=tkrA[2]=5

Maka Sekarang urutannya berubah menjadi A[i] = [2,5,3,8];


0123
//iterasi 3
I=2
I<4
2<4 benar

//sub iterasi 3.1


For(j=i+1;j<4;j++)
Selama j=2+1;j=3
3<4benar

//sub iterasi 3.2


If (A[i]>A[j])
Jika A[2] >[3]
Jika 5>8  salah
J++
J=4
4<4 salah

//iterasi 4 A[i] = [2,3,5,8]


0123
I=3
J=4
3<4  benar

//sub iterasi 4.1


For(j=i+1;j<4;j++)
Selama (j=3+1 ;  j=3
4<4  salah

//iterasi 5
J=4
I<4
4<4 salah

Data sebelumnya A[i] = [2,5,3,8]


Data sekarang A[i] = [2,3,5,8]

//pencarian data
tm=0;
high=3;
low=0;
pos=((k-A[low])/)A[high]=A[low]))*(high-low)+low
pos=((8-2/8-2))*3+0
pos=3
maka nilai 8 telah ditemukan pada indeks ke 3

Anda mungkin juga menyukai