python 快速排序代码实现
时间: 2023-11-05 17:00:54 浏览: 96
快速排序是一种常用的排序算法,它的平均时间复杂度是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,则直接返回列表本身。然后选择列表的第一个元素作为基准值。接着,使用列表解析将小于、等于和大于基准值的元素分别放入左、中和右三个列表中。对左、右两个列表再次进行快速排序,然后将左、中和右三个列表拼接起来。
相关问题
python快速排序代码实现
Python中快速排序的代码实现如下:
def quick_sort(data):
"""quick_sort"""
if len(data) >= 2:
mid = data[len(data)//2]
left,right = [], []
data.remove(mid)
for num in data:
if num >= mid:
right.append(num)
else:
left.append(num)
return quick_sort(left) + [mid] + quick_sort(right)
else:
return data
这个实现使用了递归的方式,首先选取一个中间值mid,然后将数组分为两部分,一部分是小于等于mid的数,另一部分是大于mid的数。然后对这两部分分别进行递归排序,最后将结果合并即可。
Python 快速排序的代码实现
快速排序是一种常用的高效排序算法,它的基本思想是通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后分别对这两部分记录继续进行排序,直到整个序列有序。以下是 Python 中快速排序的一个简单实现:
```python
def quicksort(arr):
if len(arr) <= 1:
return arr # 基线条件:空数组或只有一个元素的数组已经有序
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 quicksort(less) + equal + quicksort(greater) # 递归地对子数组进行排序并合并
# 使用示例
arr = [3,6,8,10,1,2,1]
sorted_arr = quicksort(arr)
print("Sorted array:", sorted_arr)
阅读全文