生成代码(有A和B两个数组,A数组中存储500个2000以内的随机整数,B数组中存储10个2000以内的随机整数,完成以下操作:用顺序查找算法显示B数组中每个元素在A数组中的位置,并返回该算法所用时间;用折半查找算法显示B数组中每个元素在A数组中的位置,并返回该算法所用时间;)
时间: 2024-03-22 20:42:07 浏览: 58
好的,下面是您需要的代码:
```python
import random
import time
# 生成A数组和B数组
A = [random.randint(1, 2000) for i in range(500)]
B = [random.randint(1, 2000) for i in range(10)]
# 顺序查找算法
def sequential_search(arr, x):
for i in range(len(arr)):
if arr[i] == x:
return i
return -1
# 折半查找算法
def binary_search(arr, x):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == x:
return mid
elif arr[mid] < x:
left = mid + 1
else:
right = mid - 1
return -1
# 顺序查找B数组中每个元素在A数组中的位置
start_time = time.time()
for i in range(len(B)):
pos = sequential_search(A, B[i])
print(f"{B[i]}在A数组中的位置为:{pos}")
end_time = time.time()
print(f"顺序查找算法所用时间:{end_time - start_time}秒")
# 折半查找B数组中每个元素在A数组中的位置
A.sort() # 把A数组排序
start_time = time.time()
for i in range(len(B)):
pos = binary_search(A, B[i])
print(f"{B[i]}在A数组中的位置为:{pos}")
end_time = time.time()
print(f"折半查找算法所用时间:{end_time - start_time}秒")
```
注意:这段代码只是生成A和B数组并用顺序查找和折半查找算法查找B数组元素在A数组中的位置,如果您需要将代码放入一个完整的程序中,还需要添加必要的输入输出部分。
阅读全文