Binary search adalah cara cepat untuk menemukan target dalam daftar yang sudah diurutkan. Anda memeriksa item tengah, menyingkirkan setengah dari nilai yang tersisa, lalu mengulanginya. Jika daftar tidak terurut, logika itu tidak berlaku.
Pada daftar yang urut menaik, aturannya sederhana: jika nilai tengah lebih kecil daripada target, cari ke kanan; jika lebih besar, cari ke kiri. Karena rentangnya terus menyusut sekitar setengah setiap kali, binary search berjalan dalam waktu .
Cara kerja binary search pada daftar terurut
Gunakan daftar terurut ini:
Misalkan targetnya adalah .
Mulailah dengan seluruh rentang. Nilai tengahnya adalah . Karena , semua nilai di sebelah kiri dapat dibuang, sehingga pencarian berlanjut pada
Sekarang nilai tengahnya adalah . Karena , semua nilai di sebelah kanan dapat dibuang, sehingga rentangnya menjadi
Sekarang nilai tengahnya adalah , jadi pencarian berhenti. Gagasan pentingnya bukan hanya bahwa target ditemukan. Dalam dua perbandingan, rentang kandidat turun dari nilai menjadi .
Mengapa binary search adalah
Setiap perbandingan menghilangkan sekitar setengah dari kandidat yang tersisa. Setelah satu langkah, sekitar item tersisa. Setelah dua langkah, sekitar item tersisa. Setelah langkah, ukuran yang tersisa kira-kira
Pencarian selesai ketika jumlah itu kira-kira , sehingga banyaknya langkah memenuhi
Dengan mengambil pada kedua sisi, diperoleh
Itulah sebabnya binary search dapat diskalakan dengan baik. Pencarian linear mungkin memerlukan hingga pemeriksaan, tetapi binary search hanya memerlukan cukup banyak pemeriksaan untuk terus membagi dua rentang.
Contoh kode binary search
Berikut adalah versi iteratif standar dalam Python:
Butuh bantuan mengerjakan soal?
Unggah pertanyaanmu dan dapatkan solusi terverifikasi langkah demi langkah dalam hitungan detik.
Buka GPAI Solver →