Java 有人能解释为什么下面代码的空间复杂度是O(1)和O(n)吗?

Java 有人能解释为什么下面代码的空间复杂度是O(1)和O(n)吗?,java,algorithm,loops,Java,Algorithm,Loops,谁能解释一下为什么下面这段代码占用O(1)空间 public静态无效时间(int n){ 对于(int i=0;i

谁能解释一下为什么下面这段代码占用O(1)空间

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;
}