SEARCHING DAN SORTING
A. Pencarian Linier (Linear search)
Andaikan terdapat array aray dengan banyak data sebanyak ukuran. Misalkan kita ingin mencari data kunci dalam array aray. Prinsip pada pencarian linier, setiap data pada aray akan dibandingkan dengan kunci sampai pada data yang terakhir (kasus terburuk). Bila pada posisi ke-i data sama dengan kunci, berarti data ditemukan pada posisi ke-i. Bila sampai akhir data, data tidak juga ditemukan berarti kunci tidak ada pada aray.
berikut adalah algoritma dari pencarian searching
function pencarianLinier(input aray : larik; kunci, ukuran : integer) : integer
|
Deklarasi
ketemu : boolean i, n : integer
|
Deskripsi
ketemu € false; n € 1
while ((n < ukuran) and (not ketemu)) do if (aray[n] = kunci) then
ketemu € true { data ketemu }
i € n { pada posisi ke-i } endif
else n € n+1 { cek data berikutnya } endwhile
if ketemu then pencarianLinier € i { data ketemu pada posisi ke-i } else pencarianLinier € -1 { data tidak ketemu }
endif end
|
Berikut adalah contoh pemrograman dari linear searching
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int linear(int array[], int pencarian, int ukuran){ //didalam linear terdapat pencarian dan ukuran
int i;// pendeklarasian
for(i=0; i<=ukuran-1; i++){ //perulangan untuk memasukkan banyaknya nilai yang dimasukkan didalam Array dimana arraynya dimulai dari
if(array[i]==pencarian)
return i;
}
return -1;
}
int main(int argc, char** argv) {
int c, b[c], pencarian, elemen, ukuran;
cout<<"masukkan banyak elemen :";
cin>>elemen;
cout<<"masukkan "<<ukuran<<"angka :"<<endl;
for(c=0; c<ukuran; c++){
cin>>b[c];
}
cout<<endl;
cout<<"bilangan yang akan di cari :";
cin>>pencarian;
elemen = linear(b, pencarian, ukuran);
if(elemen !=-1)
cout<<pencarian<<"ditemukan pada indeks ke :"<<elemen;
else
cout<<pencarian<<"tidak ada";
return 0;
}
Komentar
Posting Komentar