ytu3047快速排序
时间: 2023-12-12 21:36:07 浏览: 103
快速排序是一种高效的排序算法,其时间复杂度为O(nlog2n),空间复杂度为O(log2n)。下面是ytu3047快速排序的步骤:
1. 选择一个基准数,一般选择数组的第一个数。
2. 从数组的左右两端开始向中间扫描,如果左边的数大于等于基准数,右边的数小于等于基准数,就交换这两个数。
3. 重复步骤2,直到左右两端的指针相遇。
4. 将基准数与指针相遇的位置的数交换。
5. 对基准数左右两边的子数组分别递归执行步骤1-4。
下面是Python实现ytu3047快速排序的代码:
```python
def quick_sort(arr, left, right):
if left >= right:
return
pivot = arr[left]
i, j = left, right
while i < j:
while i < j and arr[j] >= pivot:
j -= 1
arr[i] = arr[j]
while i < j and arr[i] < pivot:
i += 1
arr[j] = arr[i]
arr[i] = pivot
quick_sort(arr, left, i - 1)
quick_sort(arr, i + 1, right)
arr = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
quick_sort(arr, 0, len(arr) - 1)
print(arr)
```
阅读全文