在自定义数组中,查找目标数,若没有找到,显示未找到目标值,用Python
时间: 2023-11-30 11:02:18 浏览: 70
好的,可以使用Python的列表(list)来实现自定义数组。以下是一个简单的示例代码,用于在一个自定义的列表中查找目标数,如果找到了则返回其索引,否则显示未找到目标值的提示信息:
```python
def search(arr, target):
for i in range(len(arr)):
if arr[i] == target:
return i
print("未找到目标值")
return -1
# 示例使用
arr = [1, 2, 3, 4, 5]
target = 3
index = search(arr, target)
if index >= 0:
print("目标值在索引", index, "处")
```
输出:
```
目标值在索引 2 处
```
如果目标值不在数组中,则输出:
```
未找到目标值
```
相关问题
在有序数组中查找某个数字首次出现的位置的库函数
在计算机科学中,特别是在编程语言中,寻找有序数组中特定数字首次出现位置的常用算法通常是二分查找法(Binary Search)。这种方法基于数组已经排序的前提,通过比较目标值与中间元素,逐步缩小搜索范围,直到找到目标或确定目标不存在于数组中。
对于查找的操作,许多编程库都会提供现成的函数来实现这个功能。例如,在Python中可以使用内置的`bisect_left()`函数(如果数组已排序),而在C++标准库中,你可以使用`std::lower_bound()`函数。在JavaScript中,虽然没有直接的库函数,但也可以自定义类似的功能。
如果你想要编写这样的函数,伪代码大概会像这样:
```python
# Python 示例
import bisect
def find_first_occurrence(arr, target):
if arr is None or len(arr) == 0:
return -1 # 如果数组为空或无效,返回-1表示未找到
index = bisect.bisect_left(arr, target)
if index < len(arr) and arr[index] == target:
return index # 找到等于目标的第一个索引
else:
return index # 目标不存在,返回第一个大于或等于target的位置
python内置的二分查找
Python并没有内置的二分查找函数,但你可以通过自定义函数来实现这个算法。二分查找,也称为折半查找,是一种在有序数组中查找特定元素的高效搜索算法。其基本步骤如下:
1. 确定数组的中间元素(mid)。
2. 比较目标值与中间元素:
- 如果相等,返回中间索引。
- 如果目标值小于中间值,对数组左半部分递归进行二分查找。
- 如果目标值大于中间值,对数组右半部分递归进行二分查找。
3. 当中间元素为空或者目标值不在数组范围内时,返回None。
以下是一个简单的Python实现:
```python
def binary_search(arr, target):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return None
# 示例
arr = [1, 3, 5, 7, 9]
target = 5
result = binary_search(arr, target)
if result != None:
print(f"元素 {target} 的索引为 {result}")
else:
print(f"{target} 不在列表中")
```
阅读全文