java - array.length 的运行时间是多少?

标签 java

<分区>

假设我有一个数组:

int[] array = new int[10];

什么是运行时间:

int len = array.length;

我本以为这会是一个常量时间操作,但是今天在面试中,面试官告诉我这将是 O(n) 因为需要计算元素的数量.

此外,如果我有这样的循环:

for (int i = array.length - 1; i >=0; i--) {
    something with array[i];
}

这是否需要额外的 n 操作才能到达数组的末尾以启动循环?面试官是C出身,所以可能他们对Java的工作原理有误解,但我不想在面试中强加。

最佳答案

array.length 是 O(1),整个循环是 O(n)(假设“某物”是恒定时间)。

Is it different for c?

C 的不同之处在于,根据数组的分配方式,您可以在 O(1) 时间内找出它的大小,或者根本不需要。 “一点也不”是指您必须自己跟踪大小。

(就个人而言,如果那是面试官的素质,我会对来那里工作有所保留。)

关于java - array.length 的运行时间是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21614298/

相关文章:

java - 我无法让 JUnit 处理简单的 Java 示例

java - Selenium 之于 Web UI 测试就像 ________ 之于 Windows 应用程序 UI 测试

java - 处理 Observable 中的错误

java - 实现静态菜单

java - 如何从独立的 java 文件调用 JAX WS?

Java解析文本文件

java - 如何让一个变量来指示另一个对象?

java - Swagger @ApiResponses 作为常量值

java - 如何让我的 ContainerRequestFilter 在 @ServerEndpoint onOpen 上调用?

java - 更改 .dbf 文件的字符集