python基于列表类型编写冒泡排序、二分查找程序
时间: 2024-09-27 08:09:12 浏览: 53
在Python中,基于列表类型的冒泡排序和二分查找算法可以分别如下实现:
**冒泡排序**:
```python
def bubble_sort(lst):
n = len(lst)
for i in range(n):
# 每轮遍历都将最大的数"冒泡"到末尾
for j in range(0, n - i - 1):
if lst[j] > lst[j + 1]:
lst[j], lst[j + 1] = lst[j + 1], lst[j]
return lst
# 示例
unsorted_list = [64, 34, 25, 12, 22, 11, 90]
sorted_list = bubble_sort(unsorted_list)
print("Sorted List:", sorted_list)
```
**二分查找**:
由于列表不是有序的,二分查找通常适用于已排序的列表。然而,Python的list本身并不支持高效的二分查找,因为其索引访问不是随机化的。如果你有一个已排序的列表,你可以将其转换为一个`sortedcontainers.SortedList`,它是专门为支持高效查找而设计的。
```python
from sortedcontainers import SortedList
def binary_search(sorted_list, target):
left, right = 0, len(sorted_list) - 1
while left <= right:
mid = (left + right) // 2
if sorted_list[mid] == target:
return mid
elif sorted_list[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
# 示例
sorted_list = SortedList([1, 2, 3, 4, 5, 6])
target = 4
position = binary_search(sorted_list, target)
if position != -1:
print(f"Element found at index {position}")
else:
print("Element not found")
```
阅读全文