Trở về đầu

foto1 foto2 foto3 foto4 foto5
Giảng viên
Nguyễn Tô Sơn - Thủ khoa Đại học Sư phạm Hà Nội
ĐT: 091.333.2869

HỌC TIN CÙNG THỦ KHOA

Thành công không phải đích đến, mà là cả một hành trình

Tìm kiếm

Trong Python không cài đặt hàm tìm kiếm nhị phân để tìm chính xác vị trí của phần tử có giá trị bằng x trong một dãy đã được sắp xếp tăng dần. Tuy nhiên, trong Python đã cài đặt sẵn hàm bisect/bisect_right module bisect.py trong thư mục Python37/Lib để tìm ra vị trí để có thể chèn x sao cho sau khi chèn thì dãy vẫn được sắp xếp theo thứ tự tăng dần. Một số tình huống hàm bisect này sẽ có thể được dùng kèm với hàm insort_right để thực hiện việc chèn.

Sử dụng các hàm này bằng lời gọi from bisect import bisect

Ta có thể dùng hàm bisect/bisect_right để tìm ra vị trí chính xác của phần tử có giá trị bằng x trong một dãy đã được sắp xếp tăng dần bằng cách như sau:

Code:

from bisect import bisect

def binary_search(a, x, lo, hi):  
    pos = bisect(a, x, lo, hi) 
    if pos == -1:
        return -1
    elif a[pos - 1] != x:
        return -1
    else:
        return pos - 1
a = [2, 3, 5, 9]
print(binary_search([2, 3, 5, 9], 9, 0, len(a))) # hi = len(a)

 

Nguồnhttps://www.it-swarm-vi.tech/vi/python/tim-kiem-nhi-phan-chia-doi-trong-python/958483430/

Giảng viên Nguyễn Tô Sơn, Thủ khoa Đại học Sư phạm Hà Nội. Điện thoại: 091.333.2869