快速排序python实现代码
时间: 2023-06-13 20:05:52 浏览: 55
以下是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,则返回该数组。否则,选择一个基准值(这里选择了中间值),将数组分成小于、等于和大于基准值的三个部分,然后递归地对左侧和右侧部分进行排序,并将它们与相等的部分合并。
相关问题
python实现快速排序代码
当然,下面是一个Python实现的快速排序代码示例:
```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)
```
这段代码使用了递归的方式实现了快速排序算法。首先,选择一个基准元素(pivot),然后将数组分成小于、等于和大于基准元素的三个部分。接着,对小于和大于部分分别进行递归调用快速排序函数,最后将结果合并起来。
python 快速排序代码实现
快速排序是一种常用的排序算法,它的平均时间复杂度是O(nlogn)。下面是使用Python实现快速排序的一种方法:
```python
def quickSort(nums):
if len(nums) <= 1:
return nums
pivot = nums[0]
left = [x for x in nums[1:] if x < pivot]
middle = [x for x in nums if x == pivot]
right = [x for x in nums[1:] if x > pivot]
return quickSort(left) + middle + quickSort(right)
nums = [5, 6, 4, 5, 3, 1, 8, 9, 7]
print(quickSort(nums))
```
这段代码首先判断了列表的长度,如果长度小于等于1,则直接返回列表本身。然后选择列表的第一个元素作为基准值。接着,使用列表解析将小于、等于和大于基准值的元素分别放入左、中和右三个列表中。对左、右两个列表再次进行快速排序,然后将左、中和右三个列表拼接起来。