更新時(shí)間:2024-02-22 來(lái)源:黑馬程序員 瀏覽量:
IT就到黑馬程序員.gif)
在Python中,實(shí)現(xiàn)二分查找通常有兩種方法:
1.迭代法:
使用循環(huán)來(lái)實(shí)現(xiàn)二分查找算法。
2.遞歸法:
使用遞歸函數(shù)來(lái)實(shí)現(xiàn)二分查找算法。
下面是這兩種方法的簡(jiǎn)單實(shí)現(xiàn)示例:
       1.迭代法:
def binary_search_iterative(arr, target): left, right = 0, len(arr) - 1 while left <= right: mid = (left + right) // 2 if arr[mid] == target: return mid elif arr[mid] < target: left = mid + 1 else: right = mid - 1 return -1 # 如果目標(biāo)元素不在數(shù)組中,則返回 -1
  2.遞歸法:
def binary_search_recursive(arr, target, left, right): if left > right: return -1 mid = (left + right) // 2 if arr[mid] == target: return mid elif arr[mid] < target: return binary_search_recursive(arr, target, mid + 1, right) else: return binary_search_recursive(arr, target, left, mid - 1) # 調(diào)用入口 def binary_search(arr, target): return binary_search_recursive(arr, target, 0, len(arr) - 1)
這兩種方法都可以有效地在已排序的數(shù)組中查找目標(biāo)元素的位置。迭代法使用循環(huán)來(lái)進(jìn)行查找,而遞歸法則利用遞歸函數(shù)來(lái)實(shí)現(xiàn)。
1024首播|39歲程序員逆襲記:不被年齡定義,AI浪潮里再迎春天
2025-10-241024程序員節(jié)丨10年同行,致敬用代碼改變世界的你
2025-10-24【AI設(shè)計(jì)】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計(jì)連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運(yùn)營(yíng)】深圳跨境電商運(yùn)營(yíng)畢業(yè)22個(gè)工作日,就業(yè)率91%+,最高薪資達(dá)13500元
2025-09-19【AI運(yùn)維】鄭州運(yùn)維1期就業(yè)班,畢業(yè)14個(gè)工作日,班級(jí)93%同學(xué)已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開(kāi)發(fā)】上海校區(qū)AI鴻蒙開(kāi)發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19