编写程序,从键盘输入10个数存入数组A,将A数按升序排列存入数组B,用二分法在B中查找元素X,输出X在B中的位置,如果未找到,给出相应提示信息。
时间: 2023-06-25 08:05:56 浏览: 81
下面是一个示例程序,可以实现这个功能:
```python
def binary_search(arr, x):
"""
二分查找函数
"""
left = 0
right = len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == x:
return mid
elif arr[mid] < x:
left = mid + 1
else:
right = mid - 1
return -1
# 输入10个数
A = []
for i in range(10):
num = int(input("请输入第{}个数:".format(i+1)))
A.append(num)
# 对A排序
B = sorted(A)
# 查找元素X
X = int(input("请输入要查找的数字:"))
index = binary_search(B, X)
if index != -1:
print("数字{}在数组B中的位置是{}".format(X, index))
else:
print("数字{}未找到".format(X))
```
在这个程序中,我们首先使用一个循环从键盘输入10个数,并将它们存入数组A。然后使用Python内置的`sorted`函数对A进行排序,将排序后的结果存入数组B。接下来,我们使用自己编写的二分查找函数`binary_search`在B中查找元素X。如果找到了,就输出其在B中的位置;如果未找到,就输出相应提示信息。
阅读全文