双边快速排序法python
时间: 2024-12-01 09:12:32 浏览: 3
双边滤波快速算法-图像处理方向
双边快速排序是一种优化版的快速排序算法,它试图减少不必要的元素交换,提高排序效率。相比于传统的快速排序,它在数组两端选择两个基准值,然后将数组分为三部分:小于第一个基准、介于两者之间和大于第二个基准的部分。这样可以避免处理大量相等元素时的额外比较。
以下是双边快速排序的一个简单Python实现:
```python
def quicksort(arr):
if len(arr) <= 1:
return arr
pivot1, pivot2 = arr[0], arr[-1]
lows = [x for x in arr[1:-1] if x < pivot1]
highs = [x for x in arr[1:-1] if x > pivot2]
equal = [x for x in arr[1:-1] if x >= pivot1 and x <= pivot2]
return quicksort(lows) + equal + [pivot1] + quicksort(highs)
# 示例
arr = [5, 3, 7, 2, 9, 1, 8, 6, 4]
sorted_arr = quicksort(arr)
print(sorted_arr)
阅读全文