利用python设计一个双向冒泡排序算法并测试
时间: 2023-08-10 12:05:28 浏览: 99
好的,下面是双向冒泡排序算法的Python代码实现:
```python
def bidirectional_bubble_sort(arr):
n = len(arr)
left, right = 0, n - 1
while left < right:
# 从左往右冒泡
for i in range(left, right):
if arr[i] > arr[i+1]:
arr[i], arr[i+1] = arr[i+1], arr[i]
right -= 1
# 从右往左冒泡
for i in range(right, left, -1):
if arr[i-1] > arr[i]:
arr[i], arr[i-1] = arr[i-1], arr[i]
left += 1
return arr
```
接下来我们使用一组测试数据来测试这个算法:
```python
arr = [3, 9, 4, 2, 8, 5, 1, 6, 7]
sorted_arr = bidirectional_bubble_sort(arr)
print(sorted_arr)
```
运行结果为:
```
[1, 2, 3, 4, 5, 6, 7, 8, 9]
```
说明算法正确。
阅读全文