Computer >> Máy Tính >  >> Lập trình >> Python

Các hàm của thuật toán Bisect trong Python

Mô-đun này cung cấp hỗ trợ để duy trì danh sách theo thứ tự đã sắp xếp mà không cần phải sắp xếp danh sách sau mỗi lần chèn phần tử mới. Chúng tôi sẽ tập trung vào hai chức năng là insort_left và insort_right.

insort_left

Hàm này trả về danh sách đã sắp xếp sau khi chèn số vào vị trí cần thiết, nếu phần tử đã có trong danh sách thì phần tử sẽ được chèn ở vị trí ngoài cùng bên trái có thể. Hàm này nhận 4 đối số, danh sách phải làm việc, số cần chèn, vị trí bắt đầu trong danh sách cần xem xét, vị trí kết thúc phải được xem xét. Giá trị mặc định của vị trí đầu và cuối lần lượt là 0 và độ dài của chuỗi.

Điều này tương tự như insert_left ngoại trừ việc phần tử mới được chèn sau khi chèn các mục nhập hiện có mà không cần duy trì thứ tự sắp xếp nghiêm ngặt.

Cú pháp

 bisect.insort_left (a, x, lo =0, hi =len (a)) bisect.insort_left (a, x, lo =0, hi =len (a)) a là dãy số đã cho. x là số được chèn 

Ví dụ

Trong ví dụ dưới đây, chúng ta thấy rằng chúng ta lấy một danh sách và trước tiên hãy áp dụng hàm bisect.insort_left cho nó.

 import bisectlistA =[11,13,23,7,13,15] print ("Cho danh sách:", listA) bisect.insort_left (listA, 14) print ("Bisect left:\ n", listA) listB =[11,13,23,7,13,15] print ("Cho danh sách:", listB) bisect.insort_right (listB, 14,0,4) print ("Bisect righ:\ n", listB)  

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

 Cho danh sách:[11, 13, 23, 7, 13, 15] Chia trái:[11, 13, 23, 7, 13, 14, 15] Danh sách cho trước:[11, 13, 23, 7, 13 , 15] Bisect righ:[11, 13, 14, 23, 7, 13, 15]