本关任务:编写一个采用折半查找法查找数组中的数的小程序。 要求输入一个数组,数组的大小为5,首先将其按照从小到大的顺序排序。 然后输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出无此数。
时间: 2024-04-09 14:33:02 浏览: 87
好的,我明白了您的要求。以下是一个使用折半查找法查找数组中的数的小程序。
```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 -1
# 输入数组,大小为5
arr = []
for i in range(5):
num = int(input("请输入第{}个数:".format(i+1)))
arr.append(num)
# 对数组进行排序
arr.sort()
# 输入要查找的数
target = int(input("请输入要查找的数:"))
# 使用折半查找法查找数在数组中的位置
index = binary_search(arr, target)
# 输出结果
if index != -1:
print("该数在数组中的位置是:", index+1)
else:
print("无此数")
```
请按照程序提示依次输入数组的五个数和要查找的数,程序将会输出该数在数组中的位置或者无此数的提示。
阅读全文