Latihan 1 dari materi Binary Search di Algoritma — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi function binarySearch(arr, target) supaya mencari target di array terurut arr dengan binary search, lalu mengembalikan index-nya, atau -1 kalau gak ada.
- Simpan batas kiri
left (mulai dari 0) dan batas kanan right (index terakhir, arr.length - 1).
- Selama
left <= right, hitung index tengah dengan Math.floor((left + right) / 2).
- Isi tengahnya sama dengan
target? Kembalikan index tengah itu. Lebih kecil? Buang separuh kiri (left = mid + 1). Lebih besar? Buang separuh kanan (right = mid - 1).
- Kalau loop selesai tanpa ketemu, kembalikan
-1.
Empat baris console.log(binarySearch(...)) di kode awal sudah ada, biarkan begitu. Output-nya harus persis empat baris ini, berurutan:
3
7
-1
0
Function-nya juga dicek dengan array 1.024 angka genap (0, 2, 4, ..., 2046) yang menghitung berapa kali isinya dibaca: mencari 1534 harus mengembalikan 767 dengan paling banyak 30 kali baca. Binary search cukup sekitar 11 langkah; mencari satu per satu dari depan butuh ratusan kali baca, jadi gak lolos.