编写程序,将一数组中的数按从小到大排序,然后输入一个数,要求用折半查找法找出该数,是数组中第几个元素值。如果该数不在数组中,则打印出“无此数”
时间: 2024-12-19 12:21:37 浏览: 29
编写这样的程序首先需要分两步:数组排序和折半查找。以下是使用Python语言的一个示例:
```python
def sort_array(arr):
"""
对数组进行升序排序
"""
arr.sort()
return arr
def binary_search(arr, target):
"""
使用折半查找算法找到目标值在排序数组中的位置
如果目标值不存在,返回 -1
"""
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
# 示例数组
array = [9, 5, 7, 1, 3, 6, 8]
sorted_array = sort_array(array)
target_num = int(input("请输入一个数字: "))
index = binary_search(sorted_array, target_num)
if index != -1:
print(f"{target_num} 在数组中的位置是 {index+1}")
else:
print("无此数")
阅读全文
相关推荐










