如何检查大小为 'k' 的排序子数组是否包含在大小为 'n' (k <= n) 此复杂度为 O(logn) 的较大排序数组中?



我想知道大小为'k'的排序子数组v'是否包含在另一个大小为'n'的排序数组中。我们知道k<=n.然而,使用double-for-loop或类似的东西会很容易,但我想用复杂性O(logn(来实现它。

例如,对于v=[-10,-3,0,4,7,19,33]和v'=[,4,7.19],它会说TRUE。

有人能帮我吗??????????

n大小的数组中二进制搜索k尺寸的数组的第一个项,然后在O(k(时间内验证所有k+em>项都在较大的数组中,这是最好的选择。(您没有指定k项目之间是否不能有额外的项目;我假设不能有(。

执行此操作的运行时间取决于nk的相对大小。如果nk大得多,则二进制搜索将主导运行时间,如果不是,则线性搜索将主导。它本质上是O( max(log(n), k) )

最新更新