Algorithm 搜索间隔列表的时间复杂度

Algorithm 搜索间隔列表的时间复杂度,algorithm,search,time-complexity,Algorithm,Search,Time Complexity,设a为区间[a.start,a.end],其中a.start和a.end为实数,因此0因为您有一个非相交区间的排序列表,您知道每个区间在下一个区间开始之前结束,您还可以将此列表视为间隔起点的排序列表,或间隔终点的排序列表 我认为你可以在区间端点的排序列表上使用二进制搜索来找到最小的区间端点,它至少与b一样大。在O(logn)最坏情况下开始,这是与b相交的第一个区间(如果任何区间与b相交)。类似地,与b相交的最后一个间隔的最大起点不大于b.end(如果任何间隔与b相交) 找到一个至少与目标一样大的

a
区间
[a.start,a.end]
,其中
a.start
a.end
为实数,因此
0因为您有一个非相交区间的排序列表,您知道每个区间在下一个区间开始之前结束,您还可以将此列表视为间隔起点的排序列表,或间隔终点的排序列表

我认为你可以在区间端点的排序列表上使用二进制搜索来找到最小的区间端点,它至少与b一样大。在O(logn)最坏情况下开始,这是与b相交的第一个区间(如果任何区间与b相交)。类似地,与b相交的最后一个间隔的最大起点不大于b.end(如果任何间隔与b相交)


找到一个至少与目标一样大的最小点,看看可能的解决方案的中间点(通过可能的解决方案的数量,而不是位置)。如果该点至少与目标一样大,则可能的解决方案范围从该点向左延伸,并包括该点。如果该点至少没有目标大,则可能的解决方案范围从该点之后一直延伸到右侧。在任何一种情况下,您都将可能的解决方案数量减少了一半左右,因此您得到了最坏的情况O(logn)。

您如何修改它?为什么在最坏的情况下是O(n)?