第1个回答 推荐于2017-12-16
一般快速排序算法都是以最左元素作为划分的基准值,这样当数据元素本身已经完全有序(不管正序或者逆序)时,每一趟划分只能将一个元素分割出来,其效率很低:时间复杂度O(n^2),空间复杂度为O(n)
所以改进方法就是找寻合适的基准值,保证不至于在关键字有序或者接近有序时发生这个情况,一般可以使用三者取中(就是待划分序列的头元素、尾元素、中间元素三者的中间值)、或者随机选择等方法,这样即使关键字完全有序,也可以保证时间复杂度O(nlogn),空间复杂度O(logn)本回答被网友采纳