需要帮助找到大的哦,c,和N吗

2024-06-16 13:43:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我们需要这两个例子的帮助。因为我有点理解大哦,但不是真的c和没有概念。第一个看起来很直截了当。我很确定最大的Oh是O(n^3),但我不确定。你知道吗

f(x) = 2n3 + 5n + 2

下一个是一个真正让我觉得我在做什么。你知道吗

def analyze(alist):
        1   exchanges = True
        2   passnum = len(alist)-1
        3   while passnum > 0 and exchanges:
        4       exchanges = False
        5       for i in range(passnum):
        6              if alist[i]>alist[i+1]:
        7               exchanges = True
        8                  alist[i],alist[i+1]=alist[i+1],alist[i]
        9          passnum = passnum-1

他要我给每一行都贴上关于大的标签哦(什么?),然后计算大的Oh,c和No。 任何帮助/解释都是巨大的帮助,我感到迷茫。我以为我有,但很明显我没有。谢谢


Tags: andinfalsetrue概念forlendef
1条回答
网友
1楼 · 发布于 2024-06-16 13:43:15

每一行代表一个基本操作或一个函数。你知道吗

初等运算通常被认为需要O(1)时间(常数时间)。你知道吗

如果我有一个简单的代码,我看的是相对于N的大Oh,一个在参数中给出的数字

a = 1 // O(1) assignement is constant 
b = a + 2 // O(1) addition is constant
for (a=0 to N-1) // a will take value  between [0..n-1], which is n different values
     a = a + 1  // addition is O(1)
//resume: i have => O(1) + O(1) + N * O(1) => O(N)

你看,我给每一行都贴了标签,我可以得出结论,这个代码是O(N),因为它是主导因素。您需要尝试对代码片段执行相同的操作。你知道吗

相关问题 更多 >