请写出程序建立一个有序的顺序表,利用折半查找方法查找元素。要求能进行多次查找,并对每次查找输出结果,成功则输出在有序表中的位置,失败则输出“无此元素”的过程
时间: 2024-02-23 16:57:52 浏览: 32
好的,我来为你编写一个简单的程序,实现有序顺序表的建立和折半查找。
```python
# 定义有序顺序表类
class OrderedList:
def __init__(self, data):
self.data = data
self.length = len(data)
# 折半查找
def binary_search(self, x):
low, high = 0, self.length - 1
while low <= high:
mid = (low + high) // 2
if self.data[mid] == x:
return mid
elif self.data[mid] > x:
high = mid - 1
else:
low = mid + 1
return -1
# 测试
if __name__ == '__main__':
# 建立有序顺序表
data = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
ordered_list = OrderedList(data)
# 折半查找
while True:
x = int(input("请输入要查找的元素:"))
index = ordered_list.binary_search(x)
if index == -1:
print("无此元素")
else:
print("元素在有序表中的位置为:", index)
```
运行程序后,你可以不断输入要查找的元素,程序会输出其在有序表中的位置或者提示无此元素。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)