【发布时间】:2015-06-11 02:59:27
【问题描述】:
我正在为大学做一个关于如何确定复杂性的项目,假设所有关于算法的知识都是取决于数据大小的运行时间。
我使用的算法类型有多项式(n2、n3、..、n6)、对数和指数。
例如,程序的一个输入它可以是:
n 1 2 3 4 5 6 7 8 9 10 11 12(数据大小)
T(n) 0,9 / 1,6 / 2,3 / 3,0 / 3,7 / 4,4 / 5,1 / 5,8 / 6,5 / 7,2 / 7,9 / 8,6
所以,我有一个多项式和对数复杂度的算法, 目前,数据最大为 20
多项式:
while answer = -1 and then j > 12 loop
aux:= true;
for k in 1..j loop
c := Polynomial(k+1);
Polynomial(k) := Polynomial(k+1) - Polynomial(k);
aux:= aux and abs(Polynomial(k)) < abs (c * 0.005); --Almost equal
end loop;
if aux then
aux := 19 - j;
end if;
j := j-1;
end loop;
我已经走到了指数式的死胡同。 有人可以给我一个提示吗? 太感谢了。
【问题讨论】:
-
您为
T(n)提供的值是什么意思? -
这不是 Ada 相关的问题。当然,任何 Ada 编译器都会拒绝
aux := 19 - j! -
这可能在 cs.stackexchange.com 上问得更好
-
如果我记得几年前的情况,应该是 O(n^2)
标签: algorithm complexity-theory