编写程序,从键盘输入10个数存入数组a,将a数按升序排列存入数组b,用二分法在b中查找元素x,输出x在b中的位置,如果未找到,给出相应提示信息。
时间: 2023-05-02 13:01:22 浏览: 160
题目描述:编写程序,从键盘输入10个数存入数组a,将a数组按升序排列存入数组b,用二分法在b中查找元素x,输出x在b中的位置,如果未找到,给出相应提示信息。
解题思路:首先从键盘读入10个数存入数组a,然后将a数组按升序排列存入数组b。对于升序排列的数组b,可以使用二分法查找元素x,找到x的位置以后输出即可。如果在b中未找到x,则输出相应提示信息。
代码实现:
```python
# 定义函数:将数组a按升序排列存入数组b
def sort(a, b):
for i in range(len(a)):
b[i] = a[i]
for i in range(len(b)):
for j in range(i, len(b)):
if b[i] > b[j]:
b[i], b[j] = b[j], b[i]
# 定义函数:在数组b中查找元素x
def bin_search(x, b):
left, right = 0, len(b) - 1
while left <= right:
mid = (left + right) // 2
if x < b[mid]:
right = mid - 1
elif x > b[mid]:
left = mid + 1
else:
return mid
return -1
# 主程序
a = [0] * 10 # 定义数组a,长度为10
b = [0] * 10 # 定义数组b,长度为10
for i in range(10):
a[i] = int(input("请输入一个数:"))
sort(a, b) # 调用函数将a数组按升序排列存入b数组
print("数组b中的元素为:", b)
x = int(input("请输入要查找的元素x:"))
index = bin_search(x, b) # 调用函数在b中查找x
if index == -1:
print("未找到元素x")
else:
print("元素x在b中的位置为:", index)
```
运行结果:
```
请输入一个数:5
请输入一个数:8
请输入一个数:2
请输入一个数:9
请输入一个数:7
请输入一个数:1
请输入一个数:6
请输入一个数:3
请输入一个数:4
请输入一个数:0
数组b中的元素为: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
请输入要查找的元素x:6
元素x在b中的位置为: 6
```
阅读全文