用快速排序求解三色砾石排序代码
时间: 2023-07-07 12:43:52 浏览: 85
快速排序代码
快速排序也可以用来求解三色砾石排序。具体来说,我们可以将数组分成三个部分,分别是小于、等于和大于中间元素的部分。然后递归地对小于和大于中间元素的部分进行快速排序,最后将这三部分拼接在一起即可。下面是一份 Python 代码实现:
```python
def three_color_sort(nums):
if len(nums) <= 1:
return nums
pivot = nums[0]
left, mid, right = [], [], []
for num in nums:
if num < pivot:
left.append(num)
elif num == pivot:
mid.append(num)
else:
right.append(num)
return three_color_sort(left) + mid + three_color_sort(right)
```
这份代码中,我们首先选取数组的第一个元素作为中间元素 `pivot`,然后将数组分成三个部分。具体来说,对于每个元素,如果它小于 `pivot`,则将其放入 `left` 数组;如果它等于 `pivot`,则将其放入 `mid` 数组;如果它大于 `pivot`,则将其放入 `right` 数组。最后,我们递归地对 `left` 和 `right` 数组进行快速排序,然后将这三个部分拼接在一起即可。
阅读全文