快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。
算法描述
快速排序使用分治法来把一个list,分成两个sub-list,其中一个都比基准小,一个都比基准大。具体描述如下:
- 任意取一个元素为“基准”
- 所有比它小的元素一律前放,比它大的元素一律后放,形成左右两个子表;
- 对各子表重新选择中心元素并以此规则调整,直到每个子表的元素只剩一个。
代码实现
1 | public class QuickStart{ |
算法分析
- 时间效率:O(nlogn)
- 空间效率:O(logn)
- 稳定性: 不稳定