段间隔搜索

时间:2017-01-21 04:37:50

标签: algorithm intervals binary-search

我们有一组间隔[angle1,angle2]。我想找出theta [-180,180]的最佳值,它位于最大间隔数。 theta的值可以是浮点数。我尝试使用线性搜索并检查所有间隔但是因为theta的值可以是浮点数,我认为即使二进制搜索也无法工作。

1 个答案:

答案 0 :(得分:3)

将区间开始值和结束值排序为单个列表,其中包含对应的值' S'或者' E'对于每一个。

当你按下S增加一个计数器时,扫描列表,当你按下E减少一个计数器。如果计数器高于目前为止看到的最高值,请记住该段的S和E值。

对于环绕式情况,简单地将包裹的每个间隔(即,角度2 <角度1)分成两部分,一部分为零。将[angle1,360]和[0,angle2]作为新间隔添加到起始集中。