- Sequential search
- Binary search
1. Sequential Search
Sequebtial search adalah sebuah metode pencarian yang melakukan pencarian satu-persatu data. Tetapi dalam metode ini memiiki kekurangan yaitu jika data yang di cari berada pada indeks 1 maka indeks selanjutnya tidak akan di cek maka jika ada data yang kita cari ada dua data maka hanya 1 data saja yang muncul.
contoh program :
#include <conio.h>
#include <iostream.h>
main(){
cout<<"========SEQUENTIAL SEARCH=========" ;
int c,i,posisi;
int A[20]={3,2,4,10,20,1,5,8,7,9,6,5,11,12,14,13,16,15,17,19};
cout<<"\n\nData : ";
for(i=0;i<20;i++){
cout<<A[i]<<" ";
}
cout<<endl;
cout<<"\nData yang ingin dicari : ";
cin>>c;
i=0;
posisi=0;
while(i<19 && A[i]!=c){
i++;
}
if (A[i]!=c){
cout<<"Maaf data yang dicari tidak ada";
}else if(posisi=i+1)
cout<<"\nditemukan pada posisi ke "<<posisi;
getch();
}
2. Binary Search
Binary Search adalah dalammetode ini binary terlebih dahulu harus di urutkan karna binary sistema kerja mencari nya dengan mengurutkan terlebih dahulu. sistem kerja binary akan membagi data dan di urutkan sistem dari binary jika ada data double saat mencari data ke dua nya akan muncul beda dengan sequential.
contoh program :
#include <iostream.h>
#include <conio.h>
main ()
{
int jd, cari,no, kiri,kanan,tengah,data[50];
cout<<" Input Jumlah Data : ";
cin>>jd;
cout<<endl;
for (no=0;no<jd;no++)
{
cout<<" Input Data Ke-"<<(no+1)<<" : ";
cin>>data[no];
}
cout<<endl;
cout<<" Input Nilai Dicari : ";
cin>>cari;
kiri=0;
kanan=jd-1;
tengah=(kanan-kiri)/2;
while ((data[tengah]!=cari) && (kiri>=0)&& (kanan<jd) && (kanan>=kiri))
{
if (cari>data[tengah])
{
kiri=tengah+1;
}
else if (cari<data[tengah])
{
kanan=tengah-1;
}
tengah=kiri+(kanan-kiri)/2;
}
cout<<endl;
if (data[tengah]==cari)
{
cout<<" Keterangan : Data Ditemukan";
}
else
{
cout<<" Keterangan : Data Tidak Ditemukan";
}
getch();
}
Tidak ada komentar:
Posting Komentar