编写程序。实现对单调递增的整型序列中(如随机产生10个1-100之间的不重复整数序列),进行折半查找。用折半查找法找出一个数是数组中第几个元素,如果找到,则返回其下标;如果该数不在数组中,则返回-1。代码
时间: 2024-09-13 21:17:18 浏览: 72
二分实现两个递增序列中位数查找
下面是一个使用Python编写的折半查找函数,用于在一个已排序的整数列表中查找特定元素的索引。假设我们有一个名为`nums`的列表,存储了1到100之间的不重复整数。
```python
def binary_search(nums, target):
left, right = 0, len(nums) - 1
while left <= right:
mid = (left + right) // 2
if nums[mid] == target:
return mid
elif nums[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
# 随机生成一个1到100的不重复整数列表
import random
random_nums = random.sample(range(1, 101), 10)
# 测试函数
target_index = binary_search(random_nums, 50)
if target_index != -1:
print(f"{50}在列表中的位置是第{target_index+1}个")
else:
print("50不在列表中")
阅读全文