用二分法查找一个数是否在随机数列中
时间: 2024-05-14 21:18:14 浏览: 16
二分查找是一种高效的查找算法,适用于已排序的数组。它的基本思想是对于一个有序数组,首先确定数组的中间位置mid,如果mid位置的值等于要查找的值,则查找成功;如果mid位置的值大于要查找的值,则在mid的左边继续查找;如果mid位置的值小于要查找的值,则在mid的右边继续查找。每次查找都可以将查找范围缩小一半,因此二分查找的时间复杂度为O(log n)。
下面是一个使用二分法查找一个数是否在随机数列中的示例代码:
```python
import random
def binary_search(nums, target):
left, right = 0, len(nums) - 1
while left <= right:
mid = (left + right) // 2
if nums[mid] == target:
return True
elif nums[mid] < target:
left = mid + 1
else:
right = mid - 1
return False
if __name__ == '__main__':
nums = [random.randint(1, 100) for _ in range(10)]
nums.sort()
print(nums)
target = random.randint(1, 100)
print('要查找的数为:', target)
if binary_search(nums, target):
print('查找成功')
else:
print('查找失败')
```
在这个示例代码中,我们首先生成一个长度为10的随机数列,并将其排序。然后随机生成一个要查找的数,使用二分法查找该数是否在随机数列中,并输出查找结果。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)