Python实现的快速排序(QuickSort)算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

当然可以!以下是一个用Python实现的快速排序(QuickSort)算法,并附有解释。

python复制代码
def quicksort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quicksort(left) + middle + quicksort(right)
# 测试代码
arr = [3,6,8,10,1,2,1]
print(quicksort(arr)) # 输出: [1, 1, 2, 3, 6, 8, 10]快速排序的实现逻辑:
1.选择基准(Pivot):从数组中选择一个元素作为基准。

在这个例子中,我们选择
了数组中间的元素。

2.划分(Partition):将数组划分为三部分:小于基准的元素、等于基准的元素和
大于基准的元素。

o left:包含所有小于基准的元素。

o middle:包含所有等于基准的元素。

o right:包含所有大于基准的元素。

3.递归排序:对left和right两部分递归地应用快速排序算法。

4.合并结果:将排序后的left、middle和right三部分合并并返回。

快速排序的时间复杂度在最坏情况下为O(n^2),但在平均情况下为O(n log n),是一种高效的排序算法。

相关文档
最新文档