据我所知,如果您有一个for循环,它的迭代次数是一个常量,比如1000,那么时间复杂度应该是O(1).但是,如果迭代次数是未知的,而是留给用户的输入,并且输入可以指定为任何数字,则它是O(N).

但是,如果迭代次数未知,但您知道迭代次数的范围,该怎么办?比方说,100%的时间范围将在10-28次迭代之间.时间复杂度是O(1)还是O(N)?为什么?

推荐答案

时间复杂性仍将被认为是O(1).迭代次数始终受固定常量的限制,并且不依赖于输入大小.同样重要的是,时间复杂性由最坏的情况决定,在您的情况下是28次迭代,固定大小.

Java相关问答推荐

如何在Android上获取来电信息

inteliJ中是否有一个功能可以自动在块注释中的/*后面添加一个空格?''

Java 8中的多个字段和计数

为什么我们不能实现两个接口,其中一个接口有相同的签名,其中一个接口有默认的实现在java?'

给定Java枚举类,通过值查找枚举

JVM会优化这个数学运算吗?

RESTful框架类字段是安全的还是不安全的

如何使用值中包含与号的查询参数创建一个java.net.URI

Spring Data JPA慢慢地创建了太多非活动会话

如何使用带有谓词参数的方法,而不使用lambda表达式

将Spring Boot 3.2.0升级到3.2.1后查询执行错误

使用存储在字符串变量中的路径目录打开.pdf文件

除0错误/抱歉我的句子是PT

嘲笑黄瓜中的对象

我的代码是线程安全的吗?[Java、CAS、转账]

如何将RESTAssured';S的Http标题转换为<;字符串、字符串和>的映射?

如何修复Spring Boot应用程序中的RestDocumentationGenerationException:java.io.FileNotFoundException:/curl-request.adoc(只读文件系统)?

谷歌应用引擎本地服务器赢得';t在eclipse上运行

使用原子整数的共享计数器并发增量

Spring Boot Security-每个端点都被403禁止,Spring记录一个BasicErrorController#错误(HttpServlet请求)