如果不了解快排的朋友请移步我的这篇博客
快速排序讲解和代码实现
那么为什么说快排是不稳定的呢
通俗的说就是一堆数里面排序,有两个相同的数A和B,排序之前A在B前面,排序之后B在A前面,这就是快排的不稳定性。
再看一个比较极端的例子
数组中全是相同的数 全是 1 1 1 1 1 1 1 1 1 1 1 1 1 1
那么i,j从两次扫一次时间复杂度就是O(n2)
关于快排的时间复杂度
最优情况:每次准基都恰好能平分数组 时间复杂度O(nlogn)
最坏情况:每次准基都是最小数或者最大数 时间复杂度O(n²)
平均情况下来时间复杂度就是 O(nlogn)
综上所述 快速排序出于性能上的考虑,牺牲了算法的稳定性。