Median

我们知道排序的开销是nlogn, 

证明如下:n 个节点的permutation是n!

binary tree的高度至少是 logn!

logn! >nlogn  [这儿实际上是log2n   ]  


现在我们要找到n个元素中的median,通过排序肯定是可以的,缺点是O(nlogn).

而我们的理想算法是接近线性的。应该是可以的,因为排序明显是做的有点过了。

我只需要找到median,我可不管你最后是不是排序的。

randomized divide-and-conquer algorithm for selection

for any number u, image splitting the list U into three categories:

  • elements smaller than u
  • those equal to u
  • elements greater than u

the search can instantly be narrowed down to one of these sublists.

                           | -        selection(SL,k)                           if (k < |SL|)

selection(S,k) =  |          v

                           | -        selection(SR,k-|SL|-|v|)

 

sum up:

Quicksort is a sorting algorithm that splits the array in exactly the same way as the

median algorithm. Its worst-case performance is O(n2), like that of median finding.

But it can be proved that its average case is O(nlogn).

Furthermore, empirically it outperforms other sorting algorithms.

This has made quicksort a favorite in many apps.

转载于:https://www.cnblogs.com/greginfo/archive/2012/02/18/2357700.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值