Python快速排序

发布时间:2024年01月10日

快速排序是一种常用的排序算法,它通过递归地将数组分割成较小的子数组,然后对这些子数组进行排序,最终将它们合并成一个有序的数组。具体步骤如下:

1. 选择一个基准元素,通常是数组中的第一个元素。
2. 将数组分成两部分,使得左边的元素都小于基准元素,右边的元素都大于基准元素。
3. 递归地对左右两部分进行快速排序。
4. 将左右两部分排序后的数组合并起来。

快速排序的关键在于选择合适的基准元素,通常采用的方法是使用双指针法来进行分区操作。快速排序的时间复杂度为O(nlogn),是一种高效的排序算法。然而,在最坏情况下,快速排序的时间复杂度可能会达到O(n^2),因此在实际应用中需要注意对基准元素的选择以及对递归深度的控制。

```python
def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    else:
        pivot = arr[0]
        less_than_pivot = [x for x in arr[1:] if x <= pivot]
        greater_than_pivot = [x for x in arr[1:] if x > pivot]
        return quick_sort(less_than_pivot) + [pivot] + quick_sort(greater_than_pivot)

# Example usage
arr = [3, 6, 8, 10, 1, 2, 1]
sorted_arr = quick_sort(arr)
print(sorted_arr)
```

文章来源:https://blog.csdn.net/HYSliuliuliu/article/details/135513830
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。