快速排序 python实现
时间: 2023-02-23 14:40:40 浏览: 33
def quick_sort(arr):
if len(arr) <= 1:
return arr
else:
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)
print(quick_sort([3,5,1,7,2,6]))
答案:快速排序的 Python 实现是:[1, 2, 3, 5, 6, 7]
相关问题
快速排序python实现
快速排序是一种常见的排序算法,它的基本思想是通过递归将序列分成两个子序列,并对子序列进行排序。
具体来说,快速排序的步骤如下:
1. 选取序列中的一个元素作为基准(通常选取第一个元素)
2. 从序列的第二个元素开始,将每个元素与基准进行比较,如果小于基准则放到序列的左边,如果大于基准则放到序列的右边
3. 递归地对左右两个子序列进行快速排序
下面是一个 Python 实现的快速排序算法:
```
def quick_sort(arr):
if len(arr) < 2:
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)
```
这个算法的时间复杂度为 O(nlogn),是一种非常快速的排序算法。
快速排序python实现代码
以下是Python实现快速排序的代码:
```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)
```
这段代码使用了递归来实现快速排序。首先,如果数组的长度小于等于1,则返回该数组。否则,选择一个基准值(这里选择了中间值),将数组分成小于、等于和大于基准值的三个部分,然后递归地对左侧和右侧部分进行排序,并将它们与相等的部分合并。