Rumah >pembangunan bahagian belakang >Tutorial Python >Adakah Fungsi Carian Binari Python Ini Mencari Elemen?

Adakah Fungsi Carian Binari Python Ini Mencari Elemen?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-28 16:44:11217semak imbas

Does This Python Binary Search Function Find the Element?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn