0Pricing
Coding Interview Prep · Pelajaran

Binary Search Klasik Tanpa Bug

Menguasai loop low, high, dan mid

Binary Search Klasik Tanpa Bug adalah pelajaran Coding Interview Prep gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Coding Interview Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Coding Interview Prep mencakup 4 pelajaran total.

Bagi Dua Ruang Pencarian

Pencarian biner menemukan nilai dalam daftar terurut dengan membagi dua rentang pada setiap langkah. Dengan begitu, pemindaian lambat O(n) berubah menjadi pencarian cepat O(log n).

a = [1, 3, 5, 7, 9]  # must be sorted

Data Terurut adalah Satu-satunya Syarat

Pencarian biner hanya bekerja pada data yang terurut. Jika daftar tidak berurutan, urutkan terlebih dahulu; jika tidak, hasilnya tidak bermakna dan salah.

a.sort()  # ascending order required

Dua Batas

Mulailah dengan dua penunjuk: low pada indeks 0 dan high pada indeks terakhir. Jika ada, target selalu berada di antara keduanya.

low, high = 0, len(a) - 1

Temukan Titik Tengah dengan Aman

Hitung mid sebagai low + (high - low) // 2. Dalam Python, overflow bukan masalah, tetapi bentuk ini merupakan kebiasaan aman di mana pun.

mid = low + (high - low) // 2

Tiga Kemungkinan

Bandingkan a[mid] dengan target. Anda mungkin menemukannya, nilainya terlalu kecil, atau terlalu besar. Setiap kasus mempersempit rentang dengan cara yang berbeda.

if a[mid] == target:
    return mid

Terlalu Kecil, Bergerak ke Kanan

Jika a[mid] lebih kecil daripada target, jawaban pasti berada di sebelah kanan. Pindahkan low ke mid + 1 dan buang separuh kiri.

elif a[mid] < target:
    low = mid + 1

Terlalu Besar, Bergerak ke Kiri

Jika a[mid] lebih besar daripada target, cari di separuh kiri. Pindahkan high ke mid - 1 agar mid tidak pernah diperiksa lagi.

else:
    high = mid - 1

Kondisi Perulangan

Lanjutkan selama low kurang dari atau sama dengan high. Saat keduanya saling melewati, rentangnya kosong dan target tidak ada.

while low <= high:
    mid = low + (high - low) // 2

Laporkan Tidak Ditemukan

Jika perulangan berakhir tanpa kecocokan, nilainya tidak ada. Kembalikan -1 sebagai konvensi agar pemanggil dapat membedakan keberhasilan dan kegagalan.

return -1  # target not in list

Jebakan Selisih Satu

Kesalahan klasiknya adalah melupakan +1 atau -1 saat memindahkan penunjuk. Jika dilewati, mid akan diuji ulang selamanya dan menyebabkan perulangan tak berujung.

low = mid + 1  # not low = mid

Gunakan Pustaka Jika Bisa

Untuk pengujian keanggotaan biasa, modul Python bisect sudah menyediakan pencarian bebas kesalahan. Tulis perulangan sendiri hanya jika Anda memerlukan logika khusus.

import bisect
i = bisect.bisect_left(a, target)

Pemeriksaan Singkat

Pikirkan hal yang menjaga perulangan tetap benar.

Ringkasan: Mencari Tanpa Kesalahan

Sekarang Anda dapat menetapkan low dan high, menghitung mid dengan aman, mempersempit sisi yang tepat, dan menghindari jebakan selisih satu. Pencarian logaritmik kini dapat Anda gunakan. 🎯

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Binary Search Klasik Tanpa Bug” gratis?

Ya — teks lengkap “Binary Search Klasik Tanpa Bug” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Coding Interview Prep, upgrade ke CoddyKit PRO. Kursus Coding Interview Prep mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Binary Search Klasik Tanpa Bug”?

Menguasai loop low, high, dan mid Kamu berlatih Coding Interview Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Coding Interview Prep?

Tidak diperlukan pengalaman sebelumnya. Coding Interview Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Binary Search Klasik Tanpa Bug” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Coding Interview Prep ini?

Ya. Setiap pelajaran Coding Interview Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Binary Search Klasik Tanpa Bug
  2. bisect_left dan bisect_right
  3. True Pertama: Binary Search Predicate
  4. Binary Search pada Jawaban
← Kembali ke Coding Interview Prep