Redian新闻
>
不明白“整数流的中位数”为啥用max heap和min heap比binary sort 好
avatar
不明白“整数流的中位数”为啥用max heap和min heap比binary sort 好# JobHunting - 待字闺中
c*h
1
原题在这里:
http://www.geeksforgeeks.org/median-of-stream-of-integers-runni
Given that integers are read from a data stream. Find median of elements
read so for in efficient way. For simplicity assume there are no duplicates.
For example, let us consider the stream 5, 15, 1, 3 …
After reading 1st element of stream - 5 -> median - 5
After reading 2nd element of stream - 5, 15 -> median - 10
After reading 3rd element of stream - 5, 15, 1 -> median - 5
After reading 4th element of stream - 5, 15, 1, 3 -> median - 4, so on...
每新进一个数,就binary search放进sorted array,记录一个录入几个数;取中间一
个或中间两个平均就是;时间复杂度对第n的进来的数就是O(nlogn)。
用两个heap做,难道不是一样的吗?每次heapify不就是个二查的过程吗?如果你非要
说heapify 的tighter bound is O(n) and upper bound is O(n log n);那同样情况
的binary sort的tighter bound也是O(n)啊。
高手请指教!多谢!!!
avatar
m*p
2
那你的数组无穷大了?
avatar
c*h
3
什么意思?如果考虑space,heap不是也一样?

【在 m**p 的大作中提到】
: 那你的数组无穷大了?
avatar
c*6
4
那用什么存放数呢?
如果要支持插入的话就得是链表或动态数组
链表没法二分查找吧,寻找时o(n)
动态数组到时可是二分,但是插入得o(n)
avatar
f*w
5
你怎么insert到array里?Worst case是O(n).
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。