用Python写快速排序怎么写
时间: 2023-03-23 18:04:38 浏览: 45
快速排序的Python实现如下:
def quick_sort(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 quick_sort(left) + middle + quick_sort(right)
相关问题
用python写快速排序
以下是使用python实现快速排序的示例代码:
```
def quick_sort(arr):
if len(arr) <= 1:
return arr
else:
pivot = arr[0]
smaller = [x for x in arr[1:] if x < pivot]
greater = [x for x in arr[1:] if x >= pivot]
return quick_sort(smaller) + [pivot] + quick_sort(greater)
```
在此代码中,我们首先检查数组是否只有一个元素或为空。 如果是这种情况,则返回数组。 否则,我们选择第一个元素作为枢轴。 然后,我们将数组拆分为较小和较大的两个子数组,分别包含小于枢轴和大于或等于枢轴的元素。 最后,我们递归地对较小的子数组和较大的子数组进行快速排序,并将它们与枢轴组合在一起。
用Python写快速排序
快速排序是一种常用的排序算法,其特点是时间复杂度为O(nlogn)。
下面是用Python实现的快速排序的代码:
```
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[0]
left = [x for x in arr[1:] if x <= pivot]
right = [x for x in arr[1:] if x > pivot]
return quick_sort(left) + [pivot] + quick_sort(right)
```
代码中,我们选择数组的第一个元素作为枢轴,然后递归地对比较小的元素和比较大的元素分别进行快速排序,最后合并结果。