Java 有人能解释为什么下面代码的空间复杂度是O(1)和O(n)吗?
谁能解释一下为什么下面这段代码占用O(1)空间Java 有人能解释为什么下面代码的空间复杂度是O(1)和O(n)吗?,java,algorithm,loops,Java,Algorithm,Loops,谁能解释一下为什么下面这段代码占用O(1)空间 public静态无效时间(int n){ 对于(int i=0;i
public静态无效时间(int n){
对于(int i=0;i
为什么下面这段代码占用O(n)空间
public静态字符串[]arrayOfHiNTimes(int n){
String[]hiArray=新字符串[n];
对于(int i=0;i
空间意味着占用存储空间第二个数组中的数组代码占用大小为n的数组,而在前一个数组中,只有整数被传递,因此空间复杂度恒定这与空间复杂度有关。与第一个程序一样,它只使用固定数量的变量,因此需要\Theta(1)
空间
对于第二个代码,当它分配一个大小为
n
的数组时,其空间复杂度为\Theta(n)
这是否回答了您的问题?
public static void sayHiNTimes(int n) {
for (int i = 0; i < n; i++) {
System.out.println("hi");
}
}
public static String[] arrayOfHiNTimes(int n) {
String[] hiArray = new String[n];
for (int i = 0; i < n; i++) {
hiArray[i] = "hi";
}
return hiArray;
}