Performance 渐近期望运行时间

Performance 渐近期望运行时间,performance,complexity-theory,asymptotic-complexity,Performance,Complexity Theory,Asymptotic Complexity,我在一个渐近分析问题上遇到了一些麻烦。该问题要求函数的渐近最坏情况运行时间和渐近预期运行时间。Random(n)生成一个均匀分布的介于1和n之间的随机数(1和n之间的每个整数的可能性相同) Func2(A,n) /*A是一个整数数组*/ 1秒← A[1]; 2K← 随机(n); 3如果(k

我在一个渐近分析问题上遇到了一些麻烦。该问题要求函数的渐近最坏情况运行时间和渐近预期运行时间。Random(n)生成一个均匀分布的介于1和n之间的随机数(1和n之间的每个整数的可能性相同)

Func2(A,n)
/*A是一个整数数组*/
1秒← A[1];
2K← 随机(n);
3如果(k
我想知道第3行(如果(k
-马特

一个提示:

第4-10行的运行时间不是O(n^2)

考虑while循环的j值:

j=1,2,4,8,16


这不是O(n)。

对于大n,k几乎总是大于log(n)。例如,对于n=1024,log(1024)=10 您将执行循环的概率为P=log(n)/n 因此,时间将是宝贵的

(log(n)/n)*(n*log(n))+ O(RandomFunc(n))
所以一切都依赖于O(Random(n))。如果O(随机(n))=O(n)


第4-10行是O(nlog(n))

使用西格玛表示法,您可以有条不紊地执行以下操作:


很抱歉,第4-10行将在nlog(n)时间运行,对吗?该问题还要求函数的预期运行时间,因为Random(n)产生了一个均匀分布的1到n之间的随机数。ET(n)=Pr(klog(n))ET(k>log(n))是的,第4-10行是最坏的情况
n log n
。我没有处理太多的预期运行时间,所以你的猜测可能比我的好。j每增加一次2的倍数。这是否表示(j(log(n)/n)*(n*log(n))+ O(RandomFunc(n))
O(n)>O(log(n)^2) = O(n)