time-complexity 相关问题

算法的时间复杂度量化算法运行所花费的时间量,作为问题输入大小的函数。算法的时间复杂度通常使用大O表示法表示,其抑制乘法常数和低阶项。

Python 3.8+ 的整数平方根 `math.isqrt()` 函数的时间复杂度

我正在尝试分析Python 3.8+版本中默认整数平方根函数math.isqrt()的时间复杂度 我试图仔细研究这个函数的时间复杂度作为一个函数......

回答 1 投票 0

使用列表时Python中“in”关键字的时间复杂度? Leetcode

我到处读到“in”运算符的时间复杂度为 O(n),但我在代码中使用了它并且不知道为什么,但它的表现就好像它的时间复杂度为 O(1) 所以我...

回答 1 投票 0

if 和 while 循环的时间复杂度 m!=n

while (m != n) { 如果 (m > n) m = m - n; 别的 n = n - m; } 如果 (m>n) 则时间复杂度应为 (m/n)-1,如果 (n>m) 则时间复杂度应为 (n/m)-1。请告诉我它的O(n)是怎样的。 如果我取 m=32 并且...

回答 1 投票 0

c++ 位集逻辑运算的时间复杂度为 O(log n)?

根据这篇文章,对位集执行按位运算的性能是 O(n),我如何使其成为 O(log n)。

回答 1 投票 0

for循环内while循环的时间复杂度

我正在编写一个算法,需要找到其总和大于给定 k 参数的最小子数组的长度。 这是我到目前为止编写的函数: public static intsmallSub(在...

回答 1 投票 0

lru_cache 与动态编程、stackoverflow 有一个但另一个没有?

我正在树上做这个基本的 dp(动态规划)问题(https://cses.fi/problemset/task/1674/)。给定公司的结构(层次结构是一棵树),任务是计算每个员工...

回答 1 投票 0

同时迭代的时间复杂度

我正在努力理解同时迭代的时间复杂度是多少。 如果我们有一个函数接受两个数组并按顺序迭代它们,那么很明显: def 过程(a:...

回答 1 投票 0

递归函数的时间复杂度

以大O表示法求下列代码的总运行时间。输入数组按大小 n 排序。 int print (int array[], int low, int high, int x){ int 中值 = (最高价 + 最低价) / 2; ...

回答 1 投票 0

Leetcode:201 给定表示范围 [left, right] 的 left 和 right 两个整数,返回该范围内所有数字的按位与,包括

为什么会失败,我们是否可以在相同的逻辑中添加任何其他内容以使其正确。 它在左=6右=7处失败 这是代码片段: 类解决方案{ 公共静态 int log2(int N)...

回答 1 投票 0

Java中使用“+”运算符连接一个字符时如何创建一个新的字符串对象?

在学习字符串的时候,遇到一段java中字符串连接的代码片段,推导出的时间复杂度为O(N2) 字符串 str=""; char ch='a'; for(int i=0;i 在学习字符串的时候,遇到一段java中字符串拼接的代码片段,推导出的时间复杂度为O(N2) String str=""; char ch='a'; for(int i=0;i<n;i++)//n is the input variable { str=str+ch; ch++; } 经过进一步调查我发现, “for”循环运行 26 次,每次循环迭代时,下一个字母表都会添加到字符串中,因此,如果由于字符串的不可变性质而每次都创建新对象, 假设创建字符串对象需要恒定时间,时间复杂度为 O(N), 那么,你能解释一下 java 中新的 String 对象是如何被创建的,这导致了这段代码片段的时间复杂度为 O(N2) 吗? 我正在学习字符串及其连接,并遇到了一个字符串连接的代码片段,其推导的时间复杂度为 O(N2),但我预计它是 O(N) 假设创建字符串需要恒定的时间。 在学习字符串的时候,遇到一段java中字符串拼接的代码片段,推导出的时间复杂度为O(N2) 是的。 如果由于 sting 的不可变性,每次都会创建新对象,那么时间复杂度将为 O(N) 没有。 假设创建字符串对象需要恒定的时间, 这个假设是错误的。 当你写下: String a = readInput(); // 'abc' is read String b = readInput(); // 'def' is read String c = a + b; 最终发生的是 a + b 被编译为对 String.concat 的调用,其工作原理如下: public static String concat(String a, String b) { char[] x = new char[a.length() + b.length()]; int pos = 0; for (int i = 0; i < a.length(); i++) { x[pos++] = a.charAt(i); } for (int i = 0; i < b.length(); i++) { x[pos++] = b.charAt(i); } return String.wrap(x); } That 是 O(z),其中 z 代表字符串输入长度。你会这样做 n 次,其中 n 代表你要连接的字符串数量。 因此,总操作时间为O(n*z),其中“n”是字符串数量,z 是每个字符串的平均长度。 在讨论大 O 表示法时,人们有一种非常非常讨厌的倾向,就是不解释 n 代表什么。这是一个常见的错误,您应该尽量避免犯。然而,这确实解释了:大多数人们错误地简化了正确的陈述:Performance characteristic is O(n*z) where n is ... and z is ....到Performance characteristic is O(n^2)。

回答 1 投票 0

Python 字典 vs 列表,哪个更快?

我正在编写欧拉问题,遇到的问题激发了我的好奇心。我有两个代码片段。一种是使用列表,另一种是使用字典。 使用列表: n=100000 数字=[] 苏玛=0 夫...

回答 5 投票 0

T(n) 复杂度

这是一个简单而愚蠢的问题 int i = 0 的复杂度是多少;是一还是二? 我可以写 int i = 0;就像 int i 一样;我 = 0;?这个是一样的吗? 我敢打赌,复杂性是不同的,第一种情况是 1...

回答 2 投票 0

StringBuilder反向方法的时间复杂度

我想求StringBuilder反向方法的时间复杂度。 这是反向方法的源代码: 公共 AbstractStringBuilder 反向(){ 布尔值 hasSurrogate = false; ...

回答 1 投票 0

Python 中字符串排列的大 O 表示法

def 排列(str): #str = 字符串输入 如果 len(str) == 0: 返回 [””] 结果=[] 对于 i,枚举(str)中的 char: 对于 p 的排列(str[:i] + str[i + ...

回答 1 投票 0

计算 f(n)^f(n) 的最有效方法,其中 f(n)=n^n 并且 n 有 15-20 位数字

我被要求用java实现最有效的程序来计算f(n)^f(n),其中f(n)=n^n并且n具有大量数字(15-20)。我发现二进制求幂(exponentiatio...

回答 2 投票 0

Java 集合相互之间的性能如何?

所以在编程讲座中,讲师给了我们一些关于一些Java Collections的性能的数据。他使用了这篇文章中给出的数据.. 然后我和我的小伙伴决定亲自测试一下...

回答 1 投票 0

简化 O((V + E) logV) 时间复杂度

dijkstra算法的时间复杂度为O((V + E) logV) 如果我的图是 E < V like the image I attached below graph can I drop the E and simplify it to O(VlogV)? If can, I would like to know...

回答 1 投票 0

编写查找最多 4 个数字的函数的最佳方法是什么? [已关闭]

我编写了一个 C 程序,使用函数查找最多 4 个数字。我用 5 种方法编写了该函数。任何人都可以建议哪种方法是执行此操作的最佳方法。 方法一: int max_of_four...

回答 1 投票 0

Python函数时间复杂度检查

嗨,我需要计算这个函数的时间复杂度。 不确定如何确定内部循环的复杂性。可能只是 O(n) 但我认为可能是 O(log(n) 因为减少 amou...

回答 1 投票 0

为什么 O(n) 比 O( nlog(n) ) 更好?

我刚刚发现了这个奇怪的发现,在普通数学中,n*logn 会小于 n,因为 log n 通常小于 1。 那么为什么 O(nlog(n)) 大于 O(n) 呢? (即为什么 nlogn 被认为是...

回答 12 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.