快速排序
快速排序(不稳定的算法):【时间复杂度为O(high-low+1)】【最好、平均空间复杂度为O(log2(n))、最坏空间复杂度O(n)】【最好、平均时间复杂度为O(nlog2(n))、最坏时间复杂度为O(n^2)】
初始基本有序或逆序的情况下时间、空间复杂度最坏
适用于顺序存储(链式存储)
Partition基本思路:初始化标记low为划分部分第一个元素的位置,high为最后一个元素的位置,然后不断的移动两标记并交换元素:
1)high向前移动找到第一个比pivot小的元素
2)low向后移动找到第一个比pivot大的元素
3)交换当前两个位置的元素
4)继续移动标记,执行1、2、3过程,直到low大于等于high为止