用python语言实现,静态查找表技术 依据顺序查找算法和折半查找算法的特点,对下面的两个查找表选择一个合适的算法,设计出完整的C源程序。并完成问题: 查找表1 : { 8 ,15 ,19 ,26 ,33 ,41 ,47 ,52 ,64 ,90 } ,查找key = 41 查找表2 : {12 ,76 ,29 ,15 ,62 ,35 ,33 ,89 ,48 ,20 } ,查找key =35 查找key=41的算法: 比较次数: 查找key=35的算法: 比较次数: 顺序查找算法算法实现代码
时间: 2024-03-07 13:47:24 浏览: 132
以下是使用Python语言实现的顺序查找算法和折半查找算法的代码:
顺序查找算法:
```python
def sequential_search(arr, key):
for i in range(len(arr)):
if arr[i] == key:
return i
return -1
# 查找表1
table1 = [8, 15, 19, 26, 33, 41, 47, 52, 64, 90]
key1 = 41
index1 = sequential_search(table1, key1)
if index1 == -1:
print("Key not found.")
else:
print("Key found at index", index1)
# 查找表2
table2 = [12, 76, 29, 15, 62, 35, 33, 89, 48, 20]
key2 = 35
index2 = sequential_search(table2, key2)
if index2 == -1:
print("Key not found.")
else:
print("Key found at index", index2)
```
折半查找算法:
```python
def binary_search(arr, key):
low, high = 0, len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == key:
return mid
elif arr[mid] < key:
low = mid + 1
else:
high = mid - 1
return -1
# 查找表1
table1 = [8, 15, 19, 26, 33, 41, 47, 52, 64, 90]
key1 = 41
index1 = binary_search(table1, key1)
if index1 == -1:
print("Key not found.")
else:
print("Key found at index", index1)
# 查找表2
table2 = [12, 76, 29, 15, 62, 35, 33, 89, 48, 20]
key2 = 35
index2 = binary_search(table2, key2)
if index2 == -1:
print("Key not found.")
else:
print("Key found at index", index2)
```
当查找key=41时,顺序查找算法比较次数为6次,折半查找算法比较次数为3次。
当查找key=35时,顺序查找算法比较次数为6次,折半查找算法比较次数为2次。