结合二进制搜索和线性搜索或任何其他算法

Combining binary search and linear search or any other algorithm

我想问一下,我还在学习时间复杂度。 我遇到了一道题,题目要求我计算二分查找的时间复杂度,

二分查找的时间复杂度为O(log m)。

搜索后,他们要我在其中计算一个线性O(n) 搜索。 所以在二分查找里面,有一个线性查找。

是 O(n log m) 还是 O(log m*n)?

如果你可以补充,请告诉我如果有多个算法组合,复杂度如何计算。谢谢!

我不确定我是否完全理解你,但我会尽力而为:
我认为有 2 种可能的情况与您的问题相关:

  1. 循环中有循环,一个不影响另一个。在那种情况下,您总是将一个的时间复杂度乘以另一个的时间复杂度。例如,在您的情况下,如果您在外部循环中进行二进制搜索并在内部进行线性搜索,则应在 O(n*logn) 中完成。该规则也与彼此内部的 3 个循环相关,等等。只需将一个乘以另一个即可。

  2. 一些嵌套循环会影响其他一些(即外循环的不同迭代会导致内循环的时间复杂度发生变化)。在这种情况下,计算嵌套循环的整体复杂度变得更加复杂,上述方法将不起作用。

无论如何,在你的情况下,我看不出有任何方法可以得到 O(log m*n)

另外,我不太明白你为什么要在nm之间切换。通常,如果您谈论具有相同数量项目的相同数据结构,那么您会使用 n.

时间复杂度为 O(n log m)。

为了计算复杂度找到原始步骤然后计算递归关系。你会得到答案。

有关详细信息,您可以转到 https://iq.opengenus.org/binary-search-in-linked-list/