从一组数中查找一个指定的数
时间: 2024-05-13 15:17:07 浏览: 13
你可以使用线性搜索或二分搜索算法来从一组数中查找一个指定的数。
线性搜索算法从数组的第一个元素开始逐个比较,直到找到所需的元素或者搜索完整个数组。这种算法的时间复杂度是O(n),其中n是数组中元素的数量。
二分搜索算法则要求数组必须有序。算法通过将数组划分为两个部分,然后检查中间元素的值,如果中间元素等于指定的数,则返回其位置;否则,如果指定的数小于中间元素,则在左半部分继续搜索;如果指定的数大于中间元素,则在右半部分继续搜索。这种算法的时间复杂度是O(log n),其中n是数组中元素的数量。
以下是使用Python实现线性搜索和二分搜索算法的示例代码:
```python
# 线性搜索算法
def linear_search(arr, target):
for i in range(len(arr)):
if arr[i] == target:
return i
return -1
# 二分搜索算法
def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
```
其中,arr是输入的数组,target是需要查找的目标数。如果找到了目标数,则返回其下标;否则,返回-1表示未找到。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)