排序及折半查找 ,程序运行时输入10个整数排序,先对整数进行非递减排序;键盘输入待查找的数,利用折半查找算法,查找成功返回该数的位置,查找失败返回错误信息
时间: 2025-02-15 12:16:55 浏览: 33
排序及折半查找是计算机科学中常见的算法应用。首先,我们来说明一下排序部分:
对于非递减排序,最常用的是冒泡排序、插入排序、选择排序或更高效的排序算法如快速排序、归并排序或堆排序。假设我们使用数组来存储这10个整数,可以选择一个合适的排序算法对其进行操作。例如,以下是使用Python的内置`sorted()`函数进行排序的例子:
```python
numbers = []
for _ in range(10):
num = int(input("请输入第{}个整数:".format(_ + 1)))
numbers.append(num)
# 对输入的10个整数进行非递减排序
numbers.sort()
print("排序后的数组:", numbers)
```
接下来是折半查找(Binary Search),它适用于已排序的数据。折半查找的基本思想是从中间元素开始,如果目标值小于中间值,则在左半边继续搜索;如果大于中间值,则在右半边搜索;直到找到目标值或搜索范围为空。
这里是使用折半查找的Python示例,假设已经有一个名为`sorted_numbers`的排好序的列表:
```python
def binary_search(numbers, target):
low = 0
high = len(numbers) - 1
while low <= high:
mid = (low + high) // 2
if numbers[mid] == target:
return mid
elif numbers[mid] < target:
low = mid + 1
else:
high = mid - 1
# 查找失败
return "找不到该数,已排序的数组中不存在"
target_num = int(input("请输入要查找的数:"))
result = binary_search(sorted_numbers, target_num)
if result != "找不到该数,已排序的数组中不存在":
print("位置:", result)
else:
print(result)
```
阅读全文
相关推荐












