2.编写一个程序,由主函数和如下函数构成。 ⑴设计函数:input(),输入n个无序的整数存储在一个数组中; ⑵设计函数:sort(),用起泡法对数组中的n各数据从大到小排序; ⑶设计函数:search(),用折半查找法在已排序的n个数中查找指定的数据,若存在,返回其所处的位置(即下标),否则返回-1。 在主函数中调用上述函数,验证函数的功能。
时间: 2023-06-05 18:47:54 浏览: 829
以下是一种可能的实现方式:
```python
def input_arr(n):
arr = []
for i in range(n):
num = int(input(f"请输入第{i+1}个整数:"))
arr.append(num)
return arr
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(n-i-1):
if arr[j] < arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
def binary_search(arr, target):
left = 0
right = len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] > target:
left = mid + 1
else:
right = mid - 1
return -1
def main():
n = int(input("请输入整数个数:"))
arr = input_arr(n)
bubble_sort(arr)
print(f"排序后的数组为:{arr}")
target = int(input("请输入要查找的数:"))
pos = binary_search(arr, target)
if pos == -1:
print("未找到该数")
else:
print(f"该数的位置为:{pos}")
if __name__ == '__main__':
main()
```
在 `main` 函数中,首先输入整数个数,然后调用 `input_arr` 函数获取输入的数组。接着调用 `bubble_sort` 函数对数组进行排序,然后输入要查找的数,并调用 `binary_search` 函数进行查找。最后根据查找结果输出相应信息。
阅读全文