卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

python二分查找算法找出數(shù)字位置

一、原理二分查找算法是一種分治思想的典型應(yīng)用,它的核心思想是將查找范圍不斷縮小,直到找到目標(biāo)或者確定不存在。具體步驟如下:1. 將有序數(shù)組按照中間元素進(jìn)行劃分,得到左右兩個(gè)子數(shù)組。2. 如果中間元素與

一、原理

二分查找算法是一種分治思想的典型應(yīng)用,它的核心思想是將查找范圍不斷縮小,直到找到目標(biāo)或者確定不存在。具體步驟如下:

1. 將有序數(shù)組按照中間元素進(jìn)行劃分,得到左右兩個(gè)子數(shù)組。

2. 如果中間元素與目標(biāo)相等,則查找成功,返回下標(biāo)。

3. 如果中間元素大于目標(biāo),則在左子數(shù)組中繼續(xù)查找。

4. 如果中間元素小于目標(biāo),則在右子數(shù)組中繼續(xù)查找。

5. 重復(fù)以上步驟,直到查找范圍為空,表示目標(biāo)不存在。

二、實(shí)現(xiàn)步驟

下面是Python中二分查找算法的實(shí)現(xiàn)步驟:

1. 定義一個(gè)函數(shù)binary_search,接收三個(gè)參數(shù):有序數(shù)組arr、目標(biāo)數(shù)字target和搜索范圍的起始位置start。

2. 判斷搜索范圍是否為空,如果為空則返回-1,表示目標(biāo)不存在。

3. 計(jì)算搜索范圍的中間索引mid。

4. 如果中間元素等于目標(biāo)數(shù)字,返回mid。

5. 如果中間元素大于目標(biāo)數(shù)字,遞歸調(diào)用binary_search,在左子數(shù)組中繼續(xù)查找,搜索范圍為start到mid-1。

6. 如果中間元素小于目標(biāo)數(shù)字,遞歸調(diào)用binary_search,在右子數(shù)組中繼續(xù)查找,搜索范圍為mid 1到end。

7. 重復(fù)以上步驟,直到找到目標(biāo)或者確定不存在。

三、代碼實(shí)例

下面是一個(gè)示例代碼,演示了如何使用Python實(shí)現(xiàn)二分查找算法:

```python

def binary_search(arr, target, start0):

end len(arr) - 1

if start > end:

return -1

mid (start end) // 2

if arr[mid] target:

return mid

elif arr[mid] > target:

return binary_search(arr, target, start, mid-1)

else:

return binary_search(arr, target, mid 1, end)

arr [1, 3, 5, 7, 9, 11]

target 7

result binary_search(arr, target)

if result ! -1:

print("目標(biāo)數(shù)字在數(shù)組中的位置為", result)

else:

print("目標(biāo)數(shù)字不存在于數(shù)組中")

```

以上代碼會輸出"目標(biāo)數(shù)字在數(shù)組中的位置為 3",表示目標(biāo)數(shù)字7在數(shù)組arr中的索引位置為3。

結(jié)論:

Python中的二分查找算法是一種高效的搜索方法,適用于有序數(shù)組。通過將查找范圍不斷縮小,可以快速定位目標(biāo)數(shù)字在數(shù)組中的位置。在實(shí)際應(yīng)用中,可以根據(jù)自己的需要進(jìn)行相應(yīng)的調(diào)整和擴(kuò)展,以滿足不同的場景需求。