二分法怎么用

1个回答

写回答

asd5511613

2022-12-03 07:36

+ 关注

移动
移动

二分法是一种简单而有效的查找算法,可以用于查找一个有序数组(或线性数据结构)中的元素。下面是一个示例代码:

1. 首先确定要查找的元素 x,定义左右指针 left 和 right,其分别指向数组的左右边界。

2. 在 while 循环中,每次将 left 和 right 指针中间的位置 mid 计算出来。

Python
Python

3. 判断中间元素是否等于 x,如果是,则返回 mid。

4. 如果中间元素小于 x,说明 x 在右半部分,将 left 指针移动到 mid+1 的位置。

5. 如果中间元素大于 x,说明 x 在左半部分,将 right 指针移动到 mid-1 的位置。

6. 如果没有找到 x,则返回 -1 表示未找到。

示例代码如下:

Python

def binary_search(arr, x):

left, right = 0, len(arr)-1

while left <= right:

mid = (left + right) // 2

if arr[mid] == x:

return mid

elif arr[mid] < x:

left = mid + 1

else:

right = mid - 1

return -1

arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

x = 5

result = binary_search(arr, x)

if result != -1:

print(f"Element is present at index {result}")

else:

print("Element is not present in array")

输出结果为:Element is present at index 4,表示元素 5 在数组的第 4 个位置上。

举报有用(17分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号