Definisi Linear Search dan Binery Search

 Definisi

Searching merupakan tindakan untuk mendapatkan suatu data dalam kumpulan data berdasarkan satu kunci (key) atau acuan data. Pada aplikasi komputer, pencarian kerapkali dilakukan. Misalnya untuk proses penghapusan data/record atau mengubah data/record tertentu di dalam suatu tabel atau file, langkah pertama yang harus dilakukan adalah mencari apakah data tersebut terdapat di dalam tabel/file atau tidak. Jika ada maka dapat dihapus atau diubah. Untuk metode searching yang paling sering digunakan yaitu Linear Searh dan Binery Search.

Linear Search

Linear Search merupakan sebuah algoritma untuk pencarian data dari himpunan data. Cara kerja dari algoritma ini adalah data yang ada dibandingkan satu per satu secara berurutan dengan yang dicari sampai data tersebut ditemukan / tidak ditemukan. Berikut contoh program nya.

#include <iostream>
using namespace std;
int main(){
int data[100], cari, i, n;
cout << "Masukkan banyaknya jumlah data : ";
cin >> n;
cout << "Input setiap data integer sebanyak " << n << " :" << endl;
for (i = 0; i < n; i++){
cin >> data[i];
}
cout << "Input data yang ingin dicari: ";
cin >> cari;
for (i = 0; i < n; i++){
if (data[i] == cari){
cout << cari << " berada di indeks ke " << i + 1 << ".\n";
break;
}
}
if (i == n){
cout << cari << " tidak ada.\n";
}
return 0;
}


Binary Searching

Binary Searching merupakan metode pencarian yang digunakan untuk mencari item tertentu dalam koleksi data yang sudah terurut. Metode ini membagi koleksi data menjadi dua bagian secara berulang menggunakan pendekatan "bagi dua" (divide and conquer) untuk mempersempit ruang pencarian. Berikuut contoh programnya

#include<iostream>
using namespace std;
int main()
{
    int i, arr[10], num, first, last, middle;
    cout<<"Enter 10 Elements (in ascending order): ";
    for(i=0; i<10; i++)
        cin>>arr[i];
    cout<<"\nEnter Element to be Search: ";
    cin>>num;
    first = 0;
    last = 9;
    middle = (first+last)/2;
    while(first <= last)
    {
        if(arr[middle]<num)
            first = middle+1;
        else if(arr[middle]==num)
        {
            cout<<"\nThe number, "<<num<<" found at Position "<<middle+1;
            break;
        }
        else
            last = middle-1;
        middle = (first+last)/2;
    }
    if(first>last)
        cout<<"\nThe number, "<<num<<" is not found in given Array";
    cout<<endl;
    return 0;

Komentar

Postingan populer dari blog ini

Toko HP