划分元素为三者取中
采用表排序
先排最小集合
先排大集合
快速排序的最坏情形是数组为正序或逆序,如果pivot总是选择第一个元素,那么每次划分只得到一个比上一次划分少一个记录的子序列,此时需要执行次递归调用。显然,采用A(划分元素为三者居中),能够将每次待排序的part尽可能一分为二,从而使得递归深度为),即空间复杂度为
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
- 先从数列中取出一个数作为基准数
- 分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边
- 再对左右区间重复第二步,直到各区间只有一个数
最优的情况下空间复杂度为:O(log2n) ;每一次都平分数组的情况,基准数尽量为中间数。