问答题
计算下列程序片段的时间代价:
int i=1;
while(i<=n){
int i=1;
while(j<=n){
int k=1;
while(k<=n){
printf("i=/%d,j=/%d,k=/%d\n",I,j,k);
k=k+1;
j
j=j+1;
}
i=i+1;
}
【正确答案】循环控制变量i从1增加到n,最外层循环体执行n次,循环控制变量j从1增加到n,中间层循环体执行n次,循环控制变量k从1增加到n,最内层循环体执行n次,所以该程序段总的时间代价为:
T(n)=1+n+n{1+n+n[1+n+2n+1]+1+1}+1
=3n3+3n2+4n+2
=O(n3)
【答案解析】