Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 任意数组的运算和时间复杂度_Java_Arrays_Algorithm - Fatal编程技术网

Java 任意数组的运算和时间复杂度

Java 任意数组的运算和时间复杂度,java,arrays,algorithm,Java,Arrays,Algorithm,假设给定一个长度为n的任意数组。在最坏的情况下,您可以在阵列上执行以下哪项操作 A.移除第i个元素,将大小减小1 B.在第i个位置插入一个元素,将大小增加1 C.找到最大元素 D.交换位置i和j处的元件 在这个问题上,我不确定任意数组的定义。看起来D是正确的,但我不确定。有人能解释一下吗?非常感谢 我认为,通过武断,可能只是意味着数组的值无关紧要 A) 删除第i个元素并将数组的大小减少1具有O(n)复杂性:删除第i个元素时,必须将所有其他元素下移一个索引。如果删除了第0个元素,则需要将n-1个元

假设给定一个长度为n的任意数组。在最坏的情况下,您可以在阵列上执行以下哪项操作

A.移除第i个元素,将大小减小1
B.在第i个位置插入一个元素,将大小增加1
C.找到最大元素
D.交换位置i和j处的元件


在这个问题上,我不确定任意数组的定义。看起来D是正确的,但我不确定。有人能解释一下吗?非常感谢

我认为,通过武断,可能只是意味着数组的值无关紧要

A) 删除第i个元素并将数组的大小减少1具有O(n)复杂性:删除第i个元素时,必须将所有其他元素下移一个索引。如果删除了第0个元素,则需要将n-1个元素向下移动一个索引

B) 出于类似的原因,在第i个位置插入元素并将数组的大小增加1具有O(n)复杂性。如果我将一个元素添加到数组的开头,我需要将所有其他元素向上移动一个。更不用说,因为数组的大小是固定的,所以我还需要创建一个新数组并复制以前的元素

C) 找到最大元素至少需要O(n)次。您需要查看每个元素以找到最大值,对吗?如果最大值位于数组末尾的位置n,则需要遍历到该点的所有值

D) 交换元素只是O(1)。这是一个常量操作,不需要for或while循环之类的


差不多吧。希望有帮助

这看起来像是一个家庭作业问题,在这种情况下,你应该问你的老师“任意排列”是什么意思:不受限制地服从个人意愿或判断;完全取决于一个人的判断——因此,任何数组,无论类型、大小和实际值如何,除了你知道大小是
n
,但值是
n
,都是任意的。我投票结束这个问题,因为问英语单词定义的问题不是一个问题。