将这两个代码整合为可以对一个顺序表实现顺序查找和折半查找的代码
时间: 2024-02-06 17:09:06 浏览: 82
以下是整合后的代码,可以实现对一个顺序表进行顺序查找和折半查找:
```python
class Search:
def sequential_search(self, arr, target):
"""
顺序查找
:param arr: 待查找的顺序表
:param target: 要查找的目标元素
:return: 目标元素在顺序表中的位置,若不存在则返回-1
"""
for i in range(len(arr)):
if arr[i] == target:
return i
return -1
def binary_search(self, arr, target):
"""
折半查找
:param arr: 待查找的顺序表(必须有序)
:param target: 要查找的目标元素
:return: 目标元素在顺序表中的位置,若不存在则返回-1
"""
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
```
在使用时,可以先创建一个顺序表对象,然后调用其顺序查找和折半查找方法:
```python
# 创建一个顺序表对象
s = Search()
# 定义一个有序顺序表
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 在顺序表中查找元素5
print(s.sequential_search(arr, 5)) # 输出:4
print(s.binary_search(arr, 5)) # 输出:4
```
阅读全文