微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我想问,我还在学习时间复杂度。 我遇到了一个问题,这个问题要求我计算二进制搜索的时间复杂度,

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

搜索后,他们希望我在其中计算线性O(n)搜索。 因此,在二进制搜索中,存在线性搜索

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

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

解决方法

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

  1. 在一个循环中有一个循环,当一个循环不影响另一个循环时。在这种情况下,您总是将一个人的时间复杂度乘以另一个人的时间复杂度。以您的情况为例,如果在外部循环中执行二进制搜索,然后在内部进行线性搜索,则应在O(n * logn)中进行。该规则也适用于彼此内部的3个循环,等等。只需将它们彼此相乘。

  2. 一个循环(外部或内部循环)会影响另一个循环(例如,有时一个循环会降低另一个循环的时间复杂度)。在那种情况下,每种算法都不相同,没有一种解决方法。

无论如何,在您的情况下,我看不到任何获得O(log n * m)的方法。

此外,我并没有真正理解为什么在n和m之间切换。规则很明确-如果您讨论的是相同的数据结构,且项目数相同,则使用n。只是两个不同,所以您应该使用不同的名称。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。