O符号和编码

我正在努力将自己的头围绕在代码的大写符号上。

我了解基本步骤即

for (int i = 0; i < n; i++)将是O(n)

然后

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

将是O(n2)

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

将 :

for (int i = 0; i < n * 2; i++)O(log n)O(n log n)O(log 2n)

有人可以用代码形式演示一个例子以及这个符号是如何形成的。

我已经研究并不断研究排序和列表被切碎等例子,这在表单中是有意义的,但我似乎没有得到如何将这些代码应用于上面的代码。

我对整个编码和大写符号都很陌生。

我熟悉对象,类,循环,函数,结构等。我忙于学习c ++,因为它是我课程的一部分。 我的课本并没有很好地解释对数大的计算。


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

T(n) = T(n-1) + 2 * c, where c = the inner part of the code

我们会做2 * n次。

给我们的解决方案如: T(n) = 2 cn + c_1, where c_1 a constant

由于2 * c是一个常数,第二项也是一个常数,我们可以这样写:

O(n)

链接地址: http://www.djcxy.com/p/39667.html

上一篇: O Notation and coding

下一篇: O complexity evaluation in the 'real world'?