Dalam Python, carian binari dilakukan dengan mudah melalui modul dua belah dua. Walau bagaimanapun, jika petunjuk tepat kewujudan item dalam senarai dikehendaki, fungsi bisekt_kiri dan dua belah kanan mungkin tidak mencukupi.
Untuk menangani keperluan ini, perpustakaan Python tidak menawarkan fungsi khusus yang disesuaikan semata-mata untuk carian binari dengan keluaran Benar/Salah eksplisit. Akibatnya, penyelesaian tersuai diperlukan.
Coretan berikut mentakrifkan fungsi binary_search, yang melakukan carian binari pada senarai diisih a dan mengembalikan indeks item sasaran x jika ditemui. Jika x tiada, ia mengembalikan -1:
from bisect import bisect_left def binary_search(a, x, lo=0, hi=None): if hi is None: hi = len(a) pos = bisect_left(a, x, lo, hi) # Find insertion position return pos if pos != hi and a[pos] == x else -1 # Check if x is there
Fungsi ini menggunakan dua belah kiri untuk menentukan titik sisipan bagi x. Jika x terdapat dalam senarai, ia akan terletak pada titik sisipan ini. Untuk mengesahkan ini, nilai pada titik sisipan dibandingkan dengan x. Jika ia sepadan, x ditemui, dan indeksnya dikembalikan. Jika tidak, x tidak hadir dan -1 dikembalikan untuk menunjukkan ini.
Fungsi tersuai ini menyediakan penyelesaian yang ringkas dan cekap untuk melakukan carian binari dengan petunjuk Betul/Salah yang jelas tentang kehadiran item dalam senarai, memenuhi keperluan yang dikenal pasti dalam soalan asal.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Carian Binari Benar/Salah dengan Cekap dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!