loops - 循环中线性搜索的时间复杂度?
问题描述
For I=1 to n
For J=1 to n
k = b[I]
F = Linear_search(a,k)
Print F
J=J*2
上述算法的时间复杂度是多少?我认为这将是 O(nlogn),但是在算法中也有一个线性搜索,它的复杂度为 O(n)。那么复杂度是 O(nlogn) 还是 O(n) 还是 O(n^2登录)?
解决方案
有 :
- 第一个循环的 n 次迭代
- 第二次的 log(n) 次迭代
该程序将调用 Linear_search nlog(n) 次。
线性搜索的复杂度为 O(n),程序的复杂度为 O(n^2log(n))
推荐阅读
- algorithm - A* 何时终止
- java-8 - 如何修复 Java 8 Streams 中的 IndexOutOfBoundException?
- android - 如何修复 Flutter 中的“程序类型已存在:android.support.v4.os.ResultReceiver$MyResultReceiver”错误
- java - 如何将文本视图数据从第一个活动发送到第三个活动
- pdo - 如何使用 PDO 将我的 MySQL Case When 语句插入 PHP,以便我可以将输出添加到我的柱形图中
- javascript - 如何解决 ImageBackground 在 React-Native 中不采用全宽问题?
- python - How to fix an error with np.where function?
- java - 前端和后端分开部署的 Cookie 的使用(域)
- angular - (本机脚本):共享热点时布局上出现空白白线/空格(ios 蓝条)?
- string - 如何在 Dart 中将 ibm 字符类型字节转换为字符串?