Pencarian biner atau pencarian bagi dua hanya bisa dilakukan pada array yang terurut. Performa dari pencarian biner jauh lebih cepat dibandingkan pencarian sekuensial. Fungsi pencarian biner dapat dinyatakan sebagai fungsi rekursif atau iterative. berikut ini adalah fungsi pencarian biner secara iteratif
Function BinarySearch(A:larik; N: Integer; X:Integer):
integer;
var
low, mid, high: integer;
begin
low := 1;
high := N;
while (low <= high) do
begin
mid := (low + high) div 2;
if (A[mid] > X) then high := mid โ 1
else if (A[mid] < X) then low := mid + 1
else break;
end;
if A[mid] = X then BinarySearch:= mid {ditemukan}
else BinarySearch := 0; {tidak ditemukan}
end;
dimana X adalah nilai yang hendak dicari, low adalah indeks array sebelah kiri, high adalah indeks array sebelah kanan, dan mid adalah indeks array tengah.
Materi Lengkap
Silakan baca juga beberapa artikel menarik kami tentang Pencarian, daftar lengkapnya adalah sebagai berikut.