我的代码: import math
n=int(input('Enter the number'))
b=list(range(2,n+1))
for i in range(2,int(math.sqrt(n))+1):
for j in b:
if j!=i and j%i==0:
b[b.index(j)]=0
b={i for i in b if not i==0}
c={i for i in b if n%i==False}
print(b)
print(c) 这一次,我以自己的方式实现了筛子。为什么它不适用于数字为6
def hasPairWithSum(arr,target):
for i in range(len(arr)):
if ((target-arr[i]) in arr[i+1:]):
return True
return False
在python中,这个函数O(n)或O(n^2)的时间复杂性,换句话说,'if ((arri+1:)中的(目标-arri)‘)是循环的另一种形式吗?另外,下面的函数是否也是O(n^2),如果不是,原因是:
def hasPairWithSum2(arr,target):
se
有人能告诉我这个python函数的空间复杂性是什么吗?我相信是O(1),但我的朋友告诉我这是O(N)。
为什么他们说O(N):在for循环的每一次迭代中创建一个新的'a‘。
我为什么要说O(1):每次迭代和丢弃旧的“a”时,都会生成一个新的“a”。
def hello(n):
for i in range(n):
a = 10
如果这是伪码,空间复杂度会是一样的吗?
我很难找到程序的时间复杂度和计算调用数的精确公式(以列表的长度表示)。下面是我编写的python程序:
from math import *
def calc(n):
i = n
li = []
while i>0:
j = 0
li.append(1)
while j<n:
li.append(1)
k = j
while k<n:
li.append(1)
k+=1
我刚开始学习Python中的数据结构& algos,并遇到了以下问题:
编写两个Python函数以求列表中的最小数。第一个函数应该将每个数与列表上的其他数字进行比较。O(n^2)。第二个函数应该是线性的O(N)。
from misc.decorator_timer import my_timer
def main():
"""
Finds the minimum number in a list
findMin1: O(n^2)
findMin2: O(n)
"""
findMin1
我已经写了一个python程序来计算平均单词长度并返回平均单词长度。 def stringlength(A: List[str]) -> int:
average = sum(len(word) for word in A)/len(A)
return average test_list = 'gfg','is','best','for',‘极客’ 打印(字符串长度(Test_list)) 答案: 3.4 我是计算时间和空间复杂性的新手。我假设这个python程序的时间复杂度是O(N),其中N是列表的长度
我试图理解Big-O表示法,所以我使用while循环制作了自己的O(n)示例,因为我发现while循环在Big O表示法中理解起来有点混乱。我定义了一个名为linear_example的函数,它接受一个列表,例如is python:
所以我的代码是:
def linear_example (l):
n =10
while n>1:
n -= 1
for i in l:
print(i)
我的想法是for循环中的代码以O(1)的恒定时间运行,而while循环中的代码以O(n)时间运行。因此,它的结果是O(1)+O(n)
当我想检查deque在python中是否为空时,我通常使用以下代码片段。
from collections import deque
q = deque()
# iterate until deque is empty
while q:
do something...
我想知道,当检查设备是否是空的时,时间的复杂性是如何的?需要O(n)吗?
有没有更快的方法来检查deque是否是空的?
我有一个名为字母数字的字符串,它包含所有字母和数字。 alphanumeric = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890" 我想遍历单个字符的列表(有些是字母数字的,有些是简单的标点符号),以找出哪些是字母数字的。这条线的时间复杂度是多少: if character in alphanumeric: 是吗?我不确定字符串是否是时间复杂度的列表,因为在查看Python wiki (https://wiki.python.org/moin/TimeComplexity)时,操作"x
我尝试了codechef中给出的时间复杂性mcq问题,在数据结构和算法的实践中。其中一个问题有一行a*< ai。这行是什么意思?
我知道如果没有and语句,复杂度将为O(n^2)。但a*<对我来说完全陌生。我在互联网上搜索了一下,但我得到的都是关于a star算法和星号的!我尝试使用一条print语句在python中运行该程序,但它显示*无效。这是否意味着指向数组中第一个元素的指针之类的东西?
找出以下函数的时间复杂度
n = len(a)
j = 0
for i =0 to n-1:
while (j < n and a* <
Python中的xrange()、random.randint(1,100)和sort()函数的时间和空间复杂度是多少?
import random
a = [random.randint(1,100) for i in xrange(1000000)]
print a
a.sort()
print a
这不是获取Fibonacci序列号的最有效方法,但我正在学习Big,并希望确认和解释下面代码的空间和时间效率。代码是用Python编写的,因此我使用一个列表并将其附加到其中,然后返回最后一个值。
追加方法需要O(1)时间,如图中所示的,但是我做了几乎n次的操作,所以我会得到时间复杂度的O(n)吗?
关于空间复杂性,我是否应该考虑作为使用的空间,因为如果输入的数字大于函数堆栈开始时的大小,列表就必须移到别处?
此中的代码用于递归方法。
def getFib(position):
if position == 0:
return 0
if position == 1:
re