big-o相关内容

嵌套的for循环总是O(n^2)吗?

我正在努力想出这段代码的复杂性(这不是一个家庭作业问题,我只是试图理解这个概念): public static boolean boxesHaveItem(List boxes, Item object) { for (Box box : boxes) { for (Item item : box.getItems()) { if ( ..
发布时间:2022-07-01 09:00:42 其他开发

计算嵌套循环的大O

我在计算以下代码的大O时遇到问题。我从来都不是最聪明的饼干。 有谁能解释一下吗。由于嵌套循环,我在这里的猜测是O(N^2),但我知道还有更多原因。 static inline int f1 (int a, int b) { for (int c = 0; c ..
发布时间:2022-06-26 19:45:49 C/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 推荐答案 编辑:删除了原始答案,因为它回答了错误的问题。 分析 ..
发布时间:2022-04-15 18:44:03 其他开发

Django查询集运行时-在固定时间内获取第n个条目

我使用多种方式通过不同的Django查询集从数据库获取数据, 但是我想知道每个查询集的运行时,如果可能的话,还有一个更好的方式(也许可以在固定时间内获取数据!) qs = MyModel.objects.order_by('-time') qs = qs.filter(blah = blah) 要获取第一个条目,我执行以下操作: entry = list(qs[:1]) first ..
发布时间:2022-03-16 11:20:09 Python

置换的阶乘时间复杂度

我只想检查以下代码是否具有阶乘时间复杂度。即O(n!)如果n是my_str中的字符数。据我所知是这样的,但我可能遗漏了一些东西。 def perms(a_str): stack = list(a_str) results = [stack.pop()] while stack: current = stack.pop() new_res ..
发布时间:2022-03-14 12:43:58 Python

在推理大O的形式定义时有点困难

我的教授最近对Big O的正式定义一笔带过: 坦率地说,即使在他向几个不同的学生解释之后,我们似乎仍然没有完全理解它的核心。理解上的问题最多出现在我们看过的以下例子中: 到目前为止,我的理由如下: 当您将函数的最高项乘以一个常量时,您得到的新函数最终会超过给定n处的初始函数。他将此n称为函数O(g(N))的证人 。 如何创建/找到此c术语?他提到了边界几次,但并没有具体说明边 ..
发布时间:2022-03-14 12:38:54 其他开发

了解摊销时间和数组插入为O(1)的原因

我正在读破解编码采访,在Big O一章中,有一个关于摊销时间的解释。这里使用了需要增长的ASN ArrayList等内容的经典示例。当数组需要增长时,假设必须将N个元素复制到新的Array,插入将花费O(N)时间。这很好。 我不明白的是,数组容量翻了一番,为什么每次插入的摊销时间,从我了解的情况来看,任何时候插入到数组,都是O(N)操作。摊销时间有什么不同?我确信文本是正确的,我只是不理解O(1 ..
发布时间:2022-03-14 12:35:54 其他开发

线性回归的最高标准是什么?

尝试对多大的系统进行线性回归才是合理的? 具体地说:我有一个具有大约300K样本点和大约1200个线性项的系统。这在计算上可行吗? 推荐答案 您可以将其表示为矩阵方程: 其中矩阵为300K行1200列,系数向量为1200x1,RHS向量为1200x1。 如果将两边乘以矩阵的转置,就会得到未知数的方程组,即1200x1200。您可以使用LU分解或任何其他您想要求解的系数算法。( ..
发布时间:2022-03-14 12:30:09 其他开发

在循环内使用indexOf是个坏主意吗?

我在为一次技术采访研究大O表示法,然后我意识到javascript的indexOf方法可能有O(N)的时间复杂度,因为它遍历数组的每个元素并返回找到的索引。 我们还知道对于较大的数据,O(n^2)(n平方)的时间复杂度不是很好的性能度量。 那么在循环内使用indexOf是个坏主意吗?在javascript中,在循环中使用indexOf方法代码很常见,可能是为了度量相等性或准备某个对象。 ..
发布时间:2022-03-14 12:26:40 前端开发

Python中min和max的大O

Python中的min和max函数的大O是什么?它们是O(n)还是Python有更好的方法来查找数组的最小值和最大值?如果它们是O(n),那么使用for循环查找所需的值是否更好,或者它们的工作方式是否与for循环相同? 推荐答案 它是O(n)。这是一个通用算法,在一般情况下,如果不全部检查,您无法找到最大/最小值。Python甚至没有使检查易于专门化的内置排序集合类型。 for循 ..
发布时间:2022-03-14 12:22:55 Python

在Java中,String()的Big-O是什么?

我正在处理一个项目,需要优化运行时间。String.contains()运行时是否与TreeSet.contains()相同,即O(LogN)? 我问这个问题的原因是我正在构建一个TreeMap>,其中的歌曲包含一串歌词。根据效率的不同,我正在考虑在歌曲中包含一组歌词,并对其运行搜索,而不是对字符串进行搜索。 推荐答案 最著名的算法之一 ..
发布时间:2022-03-14 12:19:41 Java开发

大O符号O(NM)或(N^2)

我被告知下面的代码是=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 ..
发布时间:2022-03-14 12:15:58 Java开发

C#列表从末尾删除,真的是O(N)吗?

我读过几篇文章,指出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 ..
发布时间:2022-03-14 12:08:49 C#/.NET

是log(n!)相当于nlogn?(大O符号)

在我的书中有一道选择题: 以下函数的大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 ..
发布时间:2022-02-25 16:05:08 其他开发

为什么运行时要构造决策树mnlog(N)?

当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/ε将是到达目 ..