Pengertian
Binary Search / Pencarian Biner
file presentasi klik sini
1
Vote
Sebuah algoritma pencarian biner
(atau pemilahan biner) adalah sebuah teknik untuk menemukan nilai tertentu
dalam sebuah larik (array) linear, dengan menghilangkan setengah data pada
setiap langkah, dipakai secara luas tetapi tidak secara ekslusif dalam ilmu
komputer. Sebuah pencarian biner mencari nilai tengah (median), melakukan
sebuah pembandingan untuk menentukan apakah nilai yang dicari ada sebelum atau
sesudahnya, kemudian mencari setengah sisanya dengan cara yang sama. Sebuah
pencarian biner adalah salah satu contoh dari algoritma divide and conquer
(atau lebih khusus algoritma decrease and conquer) dan sebuah pencarian
dikotomi (lebih rinci di Algoritma pencarian).
Algoritma
Penerapan terbanyak dari pencarian
biner adalah untuk mencari sebuah nilai tertentu dalam sebuah list terurut.
Jika dibayangkan, pencarian biner dapat dilihat sebagai sebuah permainan
tebak-tebakan, kita menebak sebuah bilangan, atau nomor tempat, dari daftar (list)
nilai.
Pencarian diawali dengan memeriksa
nilai yang ada pada posisi tengah list; oleh karena nilai-nilainya terurut,
kita mengetahui apakah nilai terletak sebelum atau sesudah nilai yang di tengah
tersebut, dan pencarian selanjutnya dilakukan terhadap setengah bagian dengan
cara yang sama. Berikut ini adalah pseudocode sederhana yang menentukan
indeks (posisi) dari nilai yang diberikan dalam sebuah list berurut, a
berada antara left dan right :
Karena pemanggilan fungsi di samping
adalah rekursif ekor, fungsi tersebut dapat dituliskan sebagai sebuah
pengulangan (loop), hasilnya adalah algoritma in-place:
Pada kedua kasus, algoritma akan
berakhir karena paa setiap pemanggilan rekursif atau pengulangan, jangkauan
indeks right dikurang left akan selalu mengecil, dan akhirnya pasti akan menjadi
negatif.
Pencarian biner adalah sebuah
algoritma logaritmik dan bekerja dalam waktu O(log n). Secara khusus, 1 + log2N
pengulangan yang diperlukan untuk menghasilkan jawaban. Hal ini dianggap lebih
cepat dibandingkan sebuah pencarian linear. Pencarian biner dapat
diimplementasikan dengan rekursi atau iterasi, seperti yang terlihat di atas,
walaupun pada kebanyakan bahasa pemrograman akan lebih elegan bila dinyatakan
secara rekursif.
sumber >> wikipedia.org
Tidak ada komentar:
Posting Komentar