编写一个自定义的非递归函数search(a,key)(不能调用Python内置的index方法),实现对列表中的元素进行顺序查找。函数的参数a为列表,key为查找的键。找到则返回键对应的序号或索引,否则返回-1;(2)编写一个自定义的递归函数research(a,key,left,right),实现对列表中的元素进行顺序查找,要求用递归实现。函数参数a为列表,key为查找的键,left为查找的左边界,right为查找的右边界。找到则返回键对应的序号或索引,否则返回-1;(3)输入一个整数(键),分别调用以上编写的两个查找函数,实现对列表[34,56,78,87,88,90,101,112,520,888]进行顺序查找,若找到则输出键在列表中对应的序号或索引,否则输出”not found”。
时间: 2023-08-31 11:06:32 浏览: 154
详解Python中的各种函数的使用
(1) 非递归函数search(a,key)的代码如下:
```python
def search(a, key):
for i in range(len(a)):
if a[i] == key:
return i
return -1
```
(2) 递归函数research(a,key,left,right)的代码如下:
```python
def research(a, key, left, right):
if left > right:
return -1
elif a[left] == key:
return left
else:
return research(a, key, left+1, right)
```
(3) 对列表[34,56,78,87,88,90,101,112,520,888]进行顺序查找的代码如下:
```python
a = [34,56,78,87,88,90,101,112,520,888]
key = int(input("请输入要查找的整数:"))
index1 = search(a, key)
index2 = research(a, key, 0, len(a)-1)
if index1 == -1 and index2 == -1:
print("not found")
else:
print("顺序查找结果:")
if index1 != -1:
print("非递归函数search查找到的索引为:", index1)
if index2 != -1:
print("递归函数research查找到的索引为:", index2)
```
示例输出:
```
请输入要查找的整数:87
顺序查找结果:
非递归函数search查找到的索引为: 3
递归函数research查找到的索引为: 3
```
阅读全文