4、编写程序。实现对单调递增的整型序列中(如随机产生10个1-100之间的不重复整数序列), 进行折半查找。用折半查找法找出一个数是数组中第几个元素,如果找到,则返回其下标;如果该数不在数组中,则返回-1 。
时间: 2024-09-13 19:17:27 浏览: 47
为了实现折半查找算法(也称为二分查找),你需要先对给定的整数序列进行排序,因为折半查找前提是序列已经有序。以下是使用Python编写的示例程序:
```python
import random
# 首先生成一个单调递增的整数序列(假设长度为10)
random_sequence = sorted(random.sample(range(1, 101), 10))
def binary_search(sequence, target):
low = 0
high = len(sequence) - 1
while low <= high:
mid = (low + high) // 2
if sequence[mid] == target:
return mid
elif sequence[mid] < target:
low = mid + 1
else:
high = mid - 1
# 如果目标不在序列中
return -1
target_number = int(input("请输入你要查找的目标整数:"))
result_index = binary_search(random_sequence, target_number)
if result_index != -1:
print(f"{target_number} 在序列中的位置是 {result_index}")
else:
print(f"{target_number} 不在这个有序序列中")
阅读全文