python實現lower_bound和upper_bound


由於對於二分法一直都不是很熟悉,這里就用C++中的lower_bound和upper_bound練練手。這里用python實現

lower_bound和upper_bound本質上用的就是二分法,lower_bound查找有序數組的第一個小於等於目標數的,upper_bound查找有序數組第一個大於等於目標數的

下面是python實現的lower_bound代碼

def lower_bound(arr,target,i,j):
        while i < j:
                mid = i + (j - i) / 2
                mid = int(mid)
                if target > arr[mid]:
                       i = mid + 1
                else:
                        j = mid
        return mid

  

upper_bound的python代碼

def upper_bound(arr,target,i,j):
        while i < j:
                mid = int(i + (j - i) / 2)
                if target > arr[mid]:
                        i = mid + 1
                else:
                        j = mid
                print(mid)
        return mid

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM