实现十个快速排序算法,使用python
时间: 2024-05-07 21:22:43 浏览: 95
当谈到快速排序算法时,有多种变体和优化方法可供选择。以下是几个常见的快速排序算法的实现示例,使用 Python 编程语言:
1. 基本快速排序算法:
```python
def quicksort_basic(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
less, equal, greater = [], [], []
for num in arr:
if num < pivot:
less.append(num)
elif num == pivot:
equal.append(num)
else:
greater.append(num)
return quicksort_basic(less) + equal + quicksort_basic(greater)
```
2. 优化快速排序算法(使用随机选择枢轴元素):
```python
import random
def quicksort_optimized(arr):
if len(arr) <= 1:
return arr
pivot = random.choice(arr)
less, equal, greater = [], [], []
for num in arr:
if num < pivot:
less.append(num)
elif num == pivot:
equal.append(num)
else:
greater.append(num)
return quicksort_optimized(less) + equal + quicksort_optimized(greater)
```
3. 优化快速排序算法(使用三数取中法选择枢轴元素):
```python
def quicksort_median_of_three(arr):
if len(arr) <= 1:
return arr
mid = len(arr) // 2
pivot = sorted([arr[0], arr[mid], arr[-1]])[1]
less, equal, greater = [], [], []
for num in arr:
if num < pivot:
less.append(num)
elif num == pivot:
equal.append(num)
else:
greater.append(num)
return quicksort_median_of_three(less) + equal + quicksort_median_of_three(greater)
```
以上是一些常见的快速排序算法的实现示例,你可以根据自己的需要选择适合的算法。快速排序算法的时间复杂度通常为 O(nlogn),在大多数情况下表现良好。
阅读全文