成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

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

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

一、原理

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

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

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

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

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

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

二、實現(xiàn)步驟

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

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

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

3. 計算搜索范圍的中間索引mid。

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

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

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

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

三、代碼實例

下面是一個示例代碼,演示了如何使用Python實現(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("目標數(shù)字在數(shù)組中的位置為", result)

else:

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

```

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

結(jié)論:

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