我正在努力解决从代码中制定大写符号的问题。
我理解基本步骤,即
for (int i = 0; i < n; i++)
将 O(n)
那个
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
将 O(n 2 )
我很难理解在何处或如何计算对数值。
即
会:
for (int i = 0; i < n * 2; i++)
O(log n)或 O(n log n)或 O(log 2n)等< / p>
有人可以用代码形式演示一个例子以及如何形成符号。
我已经研究并不断获取有关排序的示例以及列表被切碎等,这在表单中是有意义的,但我似乎没有得到如何将其应用于上面的代码。
我是整个编码和大写符号的新手。
我熟悉对象,类,循环,函数,结构等。 我正在忙着学习c ++,因为它是我课程的一部分。 我的教科书并没有很好地解释对数大计算或者几乎没有解释。
答案 0 :(得分:1)
可以将代码表示为递归关系:
T(n) = T(n-1) + 2 * c, where c = the inner part of the code
,
我们会2 * n
次。
为我们提供如下解决方案:
T(n) = 2 c n + c_1, where c_1 a constant
由于2 * c
是常数,而第二项也是常数下降,我们可以写:
O(n)