新聞中心
本篇內(nèi)容主要講解“python怎么合并兩個(gè)有序數(shù)組”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“python怎么合并兩個(gè)有序數(shù)組”吧!
成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供建寧網(wǎng)站建設(shè)、建寧做網(wǎng)站、建寧網(wǎng)站設(shè)計(jì)、建寧網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、建寧企業(yè)網(wǎng)站模板建站服務(wù),10多年建寧做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
合并兩個(gè)有序序列
寫出二分查找算法
已知函數(shù)原型:
def binary_search(arr,left,right,hkey):
pass 要求補(bǔ)全上述代碼
注意事項(xiàng):
(left+right) //2 ,更好寫法:left + (right-left)//2 迭代中,一定注意while判斷中等號(hào)問題 二分查找的代碼還是很容易寫出bug
迭代二分查找
代碼參考星友 Leven:
def binary_search(arr,left,right,hkey):
while left <= right:
mid = left + (right-left) // 2
if arr[mid] == hkey:
return mid
elif arr[mid] > hkey: # 嚴(yán)格大于
right = mid - 1
else: # 此處嚴(yán)格小于
left = mid + 1
return -1 # 表示找不到
if __name__ == "__main__":
sorted_list = [1,2,3,4,5,6,7,8]
result = binary_search(sorted_list,0,7,4)
print(result) 遞歸二分查找
def binary_search(arr,left,right,hkey):
if len(arr) == 0:
return -1
if left > right:
return -1
mid = left + (right-left) // 2
if arr[mid] == hkey:
return mid
elif arr[mid] < hkey: # 嚴(yán)格小于
return binary_search(arr,mid+1,right,hkey) # 折半
else:
return binary_search(arr,left,mid-1,hkey)
if __name__ == "__main__":
sorted_list = [1,2,3,4,5,6,7,8]
result = binary_search(sorted_list,0,7,4)
print(result)
更多演示動(dòng)畫
能找到關(guān)鍵碼:

不能找到關(guān)鍵碼:
合并兩個(gè)有序數(shù)組 left 和 right:
def merge(left,right):
#補(bǔ)全代碼
#
return temp 思路可參考示意圖:
到此,相信大家對(duì)“python怎么合并兩個(gè)有序數(shù)組”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
新聞標(biāo)題:python怎么合并兩個(gè)有序數(shù)組
文章URL:http://fisionsoft.com.cn/article/iicpsc.html


咨詢
建站咨詢
