Jumat, 25 Juni 2010

pembahasan searching

searching merupakan algoritma untuk mencari data dari kumpulan beberapa data. Ada macam2 algoritma searching, misalnya sequential searching dan binery searching.

1. Sequential searching
sequntial serching merupakan algoritma pencarian yang mencari secara sequential atau berurutan. Tiap2 index akan dicek dan jika data telah sama dengan data yang dicari maka pencarian akan dihentikan.
berikut algoritmanya

for (i = 0; i < n; i++)
if (key == data[i])
return (i); //return the index
return (-1); //key not found

n merupakan jumlah keseluruhan data. Data akan dicari secara berurutan sampai batas ke n. Di dalam looping terdapat fungsi if untuk mengecek apakah data tersebut sama. Jika sama maka fungsi akan mengenbalikan nilai i yang berarti data telah ditemukan

2. Binery searching
binery searching merupakan algoritma pencarian data dimana program akan mempersempit rung lingkup pencarian sampai hanya tersisa data yang dicari ataupun data tidak ditemukan. berikut algoritmanya

low = 0;
high = n – 1;
while (low <= high)
{ middle = (low + high)/2;
if (key == data[middle]
return(middle);
if (key < data[middle]
high = middle – 1;
else
low = middle + 1;
}
return(-1);

low merupakan variabel untuk indeks awal dan high untuk indeks terakhir. sedangkan middle merupakan indeks tengah yang di dapat dari penjumlahan low dan high dibagi 2.
berikutnya akan dicek apakah data yang dicari lebih besar dari data pada indeks middle atau lebih kecil atau juga sama. jika lebih besar maka low atau batas bawah akan dimulai dari middle + 1 dan jika lebih kecil maka high atau batas atas akan berakhir di middle -1. Proses ini akan terus berulang samapi data ditemukan ataupun data tidak ditemukan. ada 1 hal yang sangat penting dalam binery seearching yaitu data yang dicari sudah harus urut

Tidak ada komentar:

Posting Komentar