分治算法 快速排序python代码实现
时间: 2024-12-19 14:12:41 浏览: 4
Python实现快速排序算法
分治算法是一种解决问题的经典策略,它将复杂的问题分解成规模更小、结构相似的子问题,然后递归地解决这些子问题,最后将结果合并得到原问题的解。快速排序是一种常用的分治算法,其基本思想是选择一个“基准”元素,通过一趟排序将待排记录分隔成独立的两部分,其中一部分的所有记录都比另一部分的小,然后再对这两部分分别进行排序。
下面是Python实现快速排序的一个简单版本:
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr # 基线条件:数组长度为1或0,直接返回
pivot = arr[len(arr) // 2] # 选择基准
less = [x for x in arr if x < pivot] # 小于基准的元素
equal = [x for x in arr if x == pivot] # 等于基准的元素
greater = [x for x in arr if x > pivot] # 大于基准的元素
return quick_sort(less) + equal + quick_sort(greater) # 递归调用并合并
# 示例
arr = [3,6,8,10,1,2,1]
sorted_arr = quick_sort(arr)
print("Sorted array:", sorted_arr)
阅读全文