标签: space-complexity

空间中的固定数组大小是 O(n) 还是 O(1)?

数组是这样声明的:
int array[M], O(1)in space 还是O(n)? 其中 M 是某个固定值。对我来说O(n)是有道理的,因为它不仅仅是一个变量,而是一个完整的数组。但是我认为这可能是O(1)因为我们有一个固定的大小并且它没有改变!

arrays big-o space-complexity

2
推荐指数
1
解决办法
2682
查看次数

时间复杂度和空间复杂度的关系

时间复杂度为 O( n )的算法能否具有O( n 2 ) 或更多的空间复杂度?

algorithm big-o time-complexity space-complexity

2
推荐指数
1
解决办法
7230
查看次数

初始化指针数据结构的空间复杂性

我有一个问题.

在理论计算机科学方面,当我们分析算法时,如果算法初始化一个新的数据结构,那么我们认为数据结构是空间复杂性的一部分.

现在我对这部分不太确定.

假设我有一个数组,int我想通过使用int指针映射来映射它们.如

std::map<int*,int*> mymap;
for (int i = 1; i < arraySize; i++) {
   mymap[&arr[i-1]]=&arr[i];
}
Run Code Online (Sandbox Code Playgroud)

如果这个算法没有使用指针,那么我们可以清楚地说它正在初始化一个大小为n的映射,因此空间复杂度是O(n),但是对于这种情况,我们使用指针的地方,空间复杂度会是多少这个算法?

c++ algorithm pointers space-complexity

2
推荐指数
1
解决办法
541
查看次数

TreeRangeMap时空复杂

我正在寻找guava TreeRangeMap,它似乎非常适合我对项目的需求.java文档说它基于(java标准?)TreeMap,它具有get(put和next)的O(log(n))时间.

但TreeRangeMap应该是某种范围树实现,根据这个SO问题,查询的O(k + log(n))时间复杂度为O(n)空间,k为范围大小?有人可以证实这一点吗?

我对TreeRangeMap.subRangeMap()操作的时间复杂性也很感兴趣.它是否具有相同的O(k + log(n))?

谢谢.

java time-complexity guava space-complexity

2
推荐指数
1
解决办法
722
查看次数

递归的空间复杂性

对于一个简单的程序:

public class solution{
    public void start(int m, int n){
        for(int i = 0; i < m; i++)
            recur(n);
    }

    public void recur(int n){
        for(int j = 0; j < n; j++)
            recur(n-1);
    }
}
Run Code Online (Sandbox Code Playgroud)

谁能帮助我分析空间复杂性?我认为是O(m*n).

谢谢.

java algorithm space-complexity

2
推荐指数
1
解决办法
241
查看次数

为什么下面的代码只有 O(N) 的空间复杂度?

这直接取自 Gayle Lakmaan McDowell 的 Cracking the coding interview。

她列出了以下代码:

 int f(int n) {
 if(n<=1){
   return 1;
  }
 return f(n-1) + f(n-1);
}
Run Code Online (Sandbox Code Playgroud)

她清楚地解释了为什么时间复杂度是 O(2^n),但为什么这里的空间复杂度只有 O(N)?

algorithm time-complexity space-complexity

2
推荐指数
1
解决办法
720
查看次数

确定程序的时间和空间复杂度

因此,我在实习中遇到了编码挑战,其中一部分是确定我的程序的空间和时间复杂性。程序大致如下。

while(A){
  int[][] grid;
  // additional variables

 while(B){ //for loop involves iterating through grid
  // additional variables
  for(...) 
    for(....)
 }

  for(...) //for loop involves iterating through grid
    for(....)
}
Run Code Online (Sandbox Code Playgroud)

所以我说的是,程序总体的时间复杂度为 (A N^2+B N^2),因此得出结论,它的摊余时间为 O(N^2)。

至于空间复杂度,我是否应该将所有变量使用的数字空间相加?假设每个变量都是 int,并且循环 A 中有 3 个变量,循环 B 中有 2 个变量,那么空间复杂度是 (A*24 + B*16)?

java algorithm big-o time-complexity space-complexity

2
推荐指数
1
解决办法
910
查看次数

空间复杂度js函数

什么是空间复杂度以及我们如何获得它?(其中ab是大小为N和的数字数组M

a.filter(function(v) {
   return !b.includes(v);
})
Run Code Online (Sandbox Code Playgroud)

javascript space-complexity

2
推荐指数
1
解决办法
2994
查看次数

toCharArray() 是否消耗 Big O 中的空间

在计算算法的空间复杂度时,我们被告知找出额外空间的最简单方法是创建数据结构,如 Set、Map、Stack 等。

以下面的代码为例,它尊重字符串(在Java中)

private String reverse(String string){

    if (string == null || string.length() == 0) return string;

    char[] strArray = string.toCharArray(); // Does this consume space?

    int first = 0, last = strArray.length - 1;

    while (first < last){
        char temp = strArray[first];
        strArray[first++] = strArray[last];
        strArray[last--] = temp;
    }


    return String.valueOf(strArray);
}
Run Code Online (Sandbox Code Playgroud)

str转字符数组会占用空间吗

java arrays string big-o space-complexity

2
推荐指数
1
解决办法
877
查看次数

有没有线性时间复杂度和 O(1) 辅助空间复杂度的排序算法?

是否有线性时间复杂度和O(1)辅助空间复杂度的排序算法来对正整​​数列表进行排序?我知道,基数分类计数排序具有线性时间复杂度(O(kn)O(n+k)分别,如果我们采取k恒定),但它们都有O(n+k)辅助空间复杂度。甚至有可能同时拥有这两种属性吗?此类示例将不胜感激。

sorting algorithm time-complexity space-complexity

2
推荐指数
1
解决办法
1281
查看次数