Big o 大O表示法与编码

Big o 大O表示法与编码,big-o,time-complexity,Big O,Time Complexity,我正绞尽脑汁从代码中算出大o符号 我了解基本步骤,即: for(inti=0;i

我正绞尽脑汁从代码中算出大o符号

我了解基本步骤,即:

for(inti=0;i
将是O(n)

for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++) 
for(int i=0;i
O(n2)

我正在努力理解在哪里或如何计算对数值

i、 e

将:

for(inti=0;i
beO(logn)O(logn)O(log2n)

有人能用代码的形式演示一下例子和符号是如何形成的吗

我已经研究并不断得到一些关于排序和列表被切碎的例子,这在某种形式上是有意义的,但我似乎不知道如何将其应用到上面的代码中

我对整个编码和big-o符号都是新手

我熟悉对象、类、循环、函数、结构等。 我忙于学习C++,因为它是我课程的一部分。
我的教科书没有很好地解释对数big-o计算,或者根本没有太多解释。

可以将代码表示为递归关系:

T(n)=T(n-1)+2*c,其中c=代码的内部部分

我们将执行
2*n

为我们提供如下解决方案:
T(n)=2cn+cu1,其中cu1是常数

因为
2*c
是一个常数,第二项也是常数,我们可以写:


O(n)

你的问题可能会得到更好的答案。这是
O(n)
,因为你要做
2n
步。当你开始划分区间时会出现对数,例如二分法搜索;当你使用平衡树(修剪左边或右边的早午餐)时,等等会非常有帮助。至少这是一个好的开始。@user2485710 cstheory用于研究级问题。会更好。您好,请在代码中添加一些格式,以便更容易阅读/理解。查看更多信息。