摘要: 考虑快速排序为什么最坏情况下时间复杂度为O(n2)?这是因为每次进行划分的时候,都有一个部分大小为0(或者说为一个常数)。如果我们能够找到一种时间复杂度为O(n)的划分方法,使得划分后的两部分大小均为Θ(n),则快速排序的时间复杂度总能为Θ(nlogn)。 假设我们能够用非常小的代价寻找5个元素中的中位数,则我们可以递归的将原数组划分为大小为5的子数组,寻找每个子数组的中位数。容易证明,通过这种方式最终找到的中位数,至少存在Θ(n)的元素比它小(大)。 阅读全文
posted @ 2012-06-16 21:48 HCOONa 阅读(2847) 评论(0) 推荐(1) 编辑