2012年7月9日

顺序统计与中值

摘要: 问题:已知n个未排序的数,求找出其中第k小的数,即排名第k的数。(k<n)最简单的方法:将n个数排序,然后返回A[k]。但已经证明常见的排序算法(比如快排等)最快也就是O(nlogn)。那么我们可以做的更好,比如在线性时间O(n)里解决该问题吗?这种问题是比较常见的,比如要找出最大的数,最小的数,以及中位数等等,现在我们尝试在线性时间内找出中位数随机的分治算法该方法非常类似于随机化快速排序,其分析过程也跟随机化快速排序类似//随机产生一个从low到high之间的数 int random(int low,int high){ srand((unsigned)time(NULL)); ... 阅读全文

posted @ 2012-07-09 01:30 len_sround 阅读(398) 评论(0) 推荐(0) 编辑

导航