编写一个双向起泡的排序算法
时间: 2023-07-22 09:54:49 浏览: 110
双向冒泡排序算法
5星 · 资源好评率100%
双向起泡排序算法,也叫鸡尾酒排序算法或者定向冒泡排序算法,是冒泡排序的一种改进算法。它的主要特点是能够同时从数组的两端进行排序,从而减少排序的回合数。
下面是双向起泡排序算法的实现过程:
```python
def cocktail_sort(arr):
left, right = 0, len(arr) - 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 j in range(right, left, -1):
if arr[j-1] > arr[j]:
arr[j-1], arr[j] = arr[j], arr[j-1]
left += 1
return arr
```
算法的时间复杂度为 O(n^2),空间复杂度为 O(1)。
阅读全文