给出上浮和下沉交替的冒泡排序算法
时间: 2023-11-07 15:03:03 浏览: 98
冒泡排序的算法
下面是一个实现了上浮和下沉交替的冒泡排序算法的示例代码:
```python
def cocktail_sort(arr):
n = len(arr)
left = 0
right = 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] < arr[i-1]:
arr[i], arr[i-1] = arr[i-1], arr[i]
left += 1
return arr
```
这个算法首先从左到右进行上浮操作,然后从右到左进行下沉操作,然后再从左到右进行上浮操作,以此类推,直到排序完成。这样可以减少排序的时间复杂度,因为每次排序都会将序列中的最大值和最小值分别排到两端,减少了需要排序的元素个数。
阅读全文