我正在寻找最快的方式来决定一条线上的点是否在此线的子集内。 我给定的整数点,我也有一个“清单”的任一:如何找到一个点是否在一组间隔内?
- 点,通过一个整数(3,10,1000,等)
- 间隔表示的,我所代表由2整数(2:10都是2到10的整数,50:60等)
在这个例子中,如果我的点的值是5,那么我返回true,因为它包含在一个区间,相同的55.如果我的观点等于1000,我也返回true,因为它匹配点的列表。
我正在寻找一种快速方法(比线性更快)来检查这种情况,而不必像实际可能的点那样尽可能多的整数(即,对于1:1000的间隔我不想实例化1000个整数)。 这可以在对数时间内完成吗?
感谢
编辑: 可以考虑所采取的任何时间进行预处理的数据列表等于0,因为一旦我最初的间隔被处理,我需要这个测试适用于10,000点
可以重叠吗?我不确定这件事是否重要,但感觉应该如此。 – Almo 2012-04-12 19:52:57
他们可以,但我可以预处理我的数据,以便他们不再这样,这在时间上不是问题,因为我使用相同的时间间隔集合来处理10k点 – lezebulon 2012-04-12 19:54:48
他们是否订购? – Freddy 2012-04-12 19:55:17