Rumah >pembangunan bahagian belakang >Tutorial Python >Adakah Fungsi Carian Binari Python Ini Mencari Elemen?
Carian Perduaan (Bahagian) dalam Python
Menentukan sama ada elemen hadir dalam senarai diisih atau tuple ialah tugas biasa dalam pengaturcaraan. Walaupun Python menyediakan modul dua belah untuk carian binari, fungsi bisect_left dan bisect_right mengembalikan kedudukan walaupun item itu tidak dijumpai. Untuk menangani keperluan ini, pelaksanaan Python bagi carian binari yang secara eksplisit mengembalikan nilai Boolean diperkenalkan.
Cadangan Penyelesaian
Fungsi binary_search mengambil senarai diisih 'a' , elemen 'x' untuk dicari, dan pilihan mula dan berakhir kedudukan 'lo' dan 'hi' untuk julat carian. Ia menggunakan fungsi bisect_left daripada modul dua belah untuk mencari titik sisipan 'pos' untuk 'x' dalam senarai 'a'.
Jika 'pos' kurang daripada 'hi' dan elemen di 'pos ' adalah sama dengan 'x', kemudian 'x' ditemui, dan 'pos' dikembalikan sebagai indeks lokasinya dalam senarai. Walau bagaimanapun, jika 'pos' mencapai penghujung senarai (iaitu, 'pos' bersamaan dengan 'hi'), 'x' tidak ditemui dan fungsi 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 # don't walk off the end
Contoh Penggunaan
Sebagai contoh, diberikan senarai diisih 'a' dan elemen 'x' untuk dicari, fungsi binary_search boleh digunakan seperti berikut:
result = binary_search(a, x) if result == -1: print("Element not found") else: print("Element found at index", result)
Fungsi Python ringkas ini menyediakan cara yang mudah untuk melakukan carian binari untuk semakan kewujudan elemen dalam senarai yang diisih sambil mengekalkan kesederhanaan dan kecekapan carian binari.
Atas ialah kandungan terperinci Adakah Fungsi Carian Binari Python Ini Mencari Elemen?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!