Recursion 计算快速排序的平均案例复杂度

Recursion 计算快速排序的平均案例复杂度,recursion,time-complexity,big-o,quicksort,recurrence,Recursion,Time Complexity,Big O,Quicksort,Recurrence,我正在尝试使用递归关系计算快速排序的最坏/最佳/平均情况下的大O。我的理解是,实现的效率取决于配分函数的好坏 最坏情况:枢轴始终使一侧空 TN=N+TN-1+T1 TN=N+TN-1 TN~N2/2=>在^2上 最佳情况:pivot平均分割元素 TN=N+TN/2+TN/2 TN=N+2TN/2[主定理] TN~NlogN=>Onlogn 一般情况:这就是我困惑于如何表示递归关系或如何处理它的地方 我知道快速排序的平均情况是大0,我只是不确定如何推导它。当你选择轴时,你能做的最差的是0 | n,

我正在尝试使用递归关系计算快速排序的最坏/最佳/平均情况下的大O。我的理解是,实现的效率取决于配分函数的好坏

最坏情况:枢轴始终使一侧空

TN=N+TN-1+T1 TN=N+TN-1 TN~N2/2=>在^2上 最佳情况:pivot平均分割元素

TN=N+TN/2+TN/2 TN=N+2TN/2[主定理] TN~NlogN=>Onlogn 一般情况:这就是我困惑于如何表示递归关系或如何处理它的地方


我知道快速排序的平均情况是大0,我只是不确定如何推导它。

当你选择轴时,你能做的最差的是0 | n,最好的是n/2 | n/2。一般情况下,假设均匀随机性,你会得到一个更像n/4 | 3n/4的分裂。插入该选项,一旦常数被消除,就可以得到Onlogn。

我想,最好的情况不是Onlogn。最好的情况是将排序后的数组作为输入,在这种情况下,复杂度似乎较低。平均情况仅此而已。因此,我想到了最佳情况的配分函数,它将元素分成两半。我同意最好的案例输入是排序数组。关于我的第一条评论,我的错误,比较排序的复杂性不能小于Onlogn。我猜平均值和最佳值之间的区别在于计算常数,它没有包含在最终的大Oh符号中,因此在最后它们看起来是一样的