785. 快速排序
| 2024-10-5
0  |  阅读时长 0 分钟
From
AcWing
Status
完全掌握
Date
Oct 1, 2022
Tags
quick_sort
Difficulty
简单

描述

给定你一个长度为 的整数数列。
请你使用快速排序对这个数列按照从小到大进行排序。
并将排好序的数列按顺序输出。

输入格式

输入共两行,第一行包含整数
第二行包含 个整数(所有整数均在 范围内),表示整个数列。

输出格式

输出共一行,包含 个整数,表示排好序的数列。

数据范围

输入样例:

输出样例:

思路

代码

python版

Hoare 分区方法的基本原理:

  • 在 Hoare 分区方法中,选择一个中心点 x,通常选择中间的元素作为分区元素(x = arr[(l + r) // 2])。
  • 接着,初始化两个指针 iji 从左边界 l 开始向右移动,j 从右边界 r 开始向左移动。
  • 指针 ij 向中间移动并满足以下条件:i 继续移动直到找到一个不小于 x 的元素;j 继续移动直到找到一个不大于 x 的元素。
  • 当两个指针满足 i < j 时,交换 arr[i]arr[j],然后继续上述过程。
  • 当这两个指针相遇时 (i >= j),分区过程结束。此时,j 是最后一个参与交换的位置,或者是两个指针相遇的位置。
Loading...
目录