avatar
这是什么算法?# Programming - 葵花宝典
G*G
1
一组区间数
(1,3)
(5,7)
(8,10)
(11,100)
(1000,2000)
.....
给定一个值99,请问,如何快速知道99是落在(11,100)之间.
这个算法叫什么?谢谢!
avatar
b*g
2
binary search?

【在 G***G 的大作中提到】
: 一组区间数
: (1,3)
: (5,7)
: (8,10)
: (11,100)
: (1000,2000)
: .....
: 给定一个值99,请问,如何快速知道99是落在(11,100)之间.
: 这个算法叫什么?谢谢!

avatar
G*G
3
我不是查一个数值
比如:1,2,3,4,5,中查找3
而是,把一个值扔到区间中.

【在 b**g 的大作中提到】
: binary search?
avatar
s*u
4
结果集可能是全部,直接O(n)好了,有什么好快速的

【在 G***G 的大作中提到】
: 一组区间数
: (1,3)
: (5,7)
: (8,10)
: (11,100)
: (1000,2000)
: .....
: 给定一个值99,请问,如何快速知道99是落在(11,100)之间.
: 这个算法叫什么?谢谢!

avatar
c*t
5
In your case, all the intervals are disjoint, a simple binary earch
mechanism is enough to solve this issue (i.e. just check the even/odd
of array index)
For overlapping ones, the best solution is the interval tree.
Some other algorithms that have slightly longer constant are R
tree, or search trees built on top of GiST (which would be a nice
index scheme for database).

【在 G***G 的大作中提到】
: 一组区间数
: (1,3)
: (5,7)
: (8,10)
: (11,100)
: (1000,2000)
: .....
: 给定一个值99,请问,如何快速知道99是落在(11,100)之间.
: 这个算法叫什么?谢谢!

avatar
G*G
6
My case is not overlapping.

【在 c*****t 的大作中提到】
: In your case, all the intervals are disjoint, a simple binary earch
: mechanism is enough to solve this issue (i.e. just check the even/odd
: of array index)
: For overlapping ones, the best solution is the interval tree.
: Some other algorithms that have slightly longer constant are R
: tree, or search trees built on top of GiST (which would be a nice
: index scheme for database).

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。