big-o相关内容
我正在努力想出这段代码的复杂性(这不是一个家庭作业问题,我只是试图理解这个概念): public static boolean boxesHaveItem(List boxes, Item object) { for (Box box : boxes) { for (Item item : box.getItems()) { if (
..
我在计算以下代码的大O时遇到问题。我从来都不是最聪明的饼干。 有谁能解释一下吗。由于嵌套循环,我在这里的猜测是O(N^2),但我知道还有更多原因。 static inline int f1 (int a, int b) { for (int c = 0; c
..
我想知道在使用Big-theta表示法的以下算法中,此过程可以返回的最小值和最大值是多少。算法为: procedure F(𝐴[1..n]) s = 0 for i = 1 to n j = min(max(i,A[i]),n³) s = s + j return s 推荐答案 编辑:删除了原始答案,因为它回答了错误的问题。 分析
..
我使用多种方式通过不同的Django查询集从数据库获取数据, 但是我想知道每个查询集的运行时,如果可能的话,还有一个更好的方式(也许可以在固定时间内获取数据!) qs = MyModel.objects.order_by('-time') qs = qs.filter(blah = blah) 要获取第一个条目,我执行以下操作: entry = list(qs[:1]) first
..
我只想检查以下代码是否具有阶乘时间复杂度。即O(n!)如果n是my_str中的字符数。据我所知是这样的,但我可能遗漏了一些东西。 def perms(a_str): stack = list(a_str) results = [stack.pop()] while stack: current = stack.pop() new_res
..
python2示例代码: for i in range(N): print str(random.randint(0, N)) 假设随机数生成器在O(1)中运行,那么上面的循环(简单地打印0-N范围内的N个随机数)是O(N),是否安全? 推荐答案 random.randint(0, N)可能是O(log N),即它与N中的位数成比例。 The implement
..
我的教授最近对Big O的正式定义一笔带过: 坦率地说,即使在他向几个不同的学生解释之后,我们似乎仍然没有完全理解它的核心。理解上的问题最多出现在我们看过的以下例子中: 到目前为止,我的理由如下: 当您将函数的最高项乘以一个常量时,您得到的新函数最终会超过给定n处的初始函数。他将此n称为函数O(g(N))的证人 。 如何创建/找到此c术语?他提到了边界几次,但并没有具体说明边
..
我正在读破解编码采访,在Big O一章中,有一个关于摊销时间的解释。这里使用了需要增长的ASN ArrayList等内容的经典示例。当数组需要增长时,假设必须将N个元素复制到新的Array,插入将花费O(N)时间。这很好。 我不明白的是,数组容量翻了一番,为什么每次插入的摊销时间,从我了解的情况来看,任何时候插入到数组,都是O(N)操作。摊销时间有什么不同?我确信文本是正确的,我只是不理解O(1
..
下面的C代码显然是O(N)(根据我的模拟考试)。但是,我不确定为什么是O(N)而不是O(某物*某物)。 void doit(int N) { while (N) { for (int j = 0; j
..
尝试对多大的系统进行线性回归才是合理的? 具体地说:我有一个具有大约300K样本点和大约1200个线性项的系统。这在计算上可行吗? 推荐答案 您可以将其表示为矩阵方程: 其中矩阵为300K行1200列,系数向量为1200x1,RHS向量为1200x1。 如果将两边乘以矩阵的转置,就会得到未知数的方程组,即1200x1200。您可以使用LU分解或任何其他您想要求解的系数算法。(
..
我在为一次技术采访研究大O表示法,然后我意识到javascript的indexOf方法可能有O(N)的时间复杂度,因为它遍历数组的每个元素并返回找到的索引。 我们还知道对于较大的数据,O(n^2)(n平方)的时间复杂度不是很好的性能度量。 那么在循环内使用indexOf是个坏主意吗?在javascript中,在循环中使用indexOf方法代码很常见,可能是为了度量相等性或准备某个对象。
..
Python中的min和max函数的大O是什么?它们是O(n)还是Python有更好的方法来查找数组的最小值和最大值?如果它们是O(n),那么使用for循环查找所需的值是否更好,或者它们的工作方式是否与for循环相同? 推荐答案 它是O(n)。这是一个通用算法,在一般情况下,如果不全部检查,您无法找到最大/最小值。Python甚至没有使检查易于专门化的内置排序集合类型。 for循
..
我正在处理一个项目,需要优化运行时间。String.contains()运行时是否与TreeSet.contains()相同,即O(LogN)? 我问这个问题的原因是我正在构建一个TreeMap>,其中的歌曲包含一串歌词。根据效率的不同,我正在考虑在歌曲中包含一组歌词,并对其运行搜索,而不是对字符串进行搜索。 推荐答案 最著名的算法之一
..
我被告知下面的代码是=O(MN),但是,我得到了O(N^2)。哪一项是正确答案?为什么? 我的思维过程: 嵌套的for循环加上if语句-->(O(N^2)+O(1))+(O(N^2)+O(1))=O(N^2) 谢谢 public static void zeroOut(int[][] matrix) { int[] row = new int[matrix.length
..
我试图编写二进制搜索和线性搜索的代码,看到二进制搜索有时甚至比线性搜索慢两倍,这让我感到震惊。请帮帮我。以下是我的代码。 二进制搜索代码: def binary_search(array, target, n=0): l = len(array)-1 i = l//2 try: ai = array[i] except:
..
我读过几篇文章,指出List.RemoveAt()的时间为O(N)。 如果我执行如下操作: var myList = new List(); /* Add many ints to the list here. */ // Remove item at end of list: myList.RemoveAt(myList.Count - 1); // Does this
..
在我的书中有一道选择题: 以下函数的大O符号是什么: n^log(2)+log(n^n)+nlog(n!) 我知道该日志(n!)属于O(Nlogn),但我在网上看到它们是等价的。log(n!)怎么样?跟说nlogn是一回事吗? 情况如何: log(n!)=logn+log(n-1)+.+log2+log1 相当于nlogn? 推荐答案 设n/2为n除以2的商。我们有: l
..
当m是特征量,n是样本量时,python acadkit-Learning站点(http://scikit-learn.org/stable/modules/tree.html)声明构建二叉决策树的运行时是mnlog(N)。 我知道log(N)来自分裂后树的平均高度。我理解,在每次拆分时,您必须查看每个功能(M),然后选择最好的一个进行拆分。我知道这是通过为该节点(N)的每个样本计算一个“最
..
我正在读“人工智能:现代方法”一书。我偶然看到这样一句话,描述了统一成本搜索的时间复杂性: 统一成本搜索是由路径成本而不是深度来指导的,因此其 复杂性不容易用b和d来表征。相反, 设C是最优解的成本,并假设每 行动成本至少是ε。那么算法的最坏情况时间和 空间复杂度为O(b^(1+C/ε)),可以远远大于b^d。 据我理解,C是最优解决方案的成本,每个操作至少需要ε,因此C/ε将是到达目
..
我有记忆斐波那契代码,我无法计算出它的时间复杂度是多少: function fibMemo(index, cache) { cache = cache || []; if (cache[index]) return cache[index]; else { if (index
..