正在加载图片...
while(i<n) 解析 k=0;//1 do[//n k=k+10*1;//n ++;//n while(i<n): //n 由以上列出的各语句的频度,可得该程序段的时间消耗: T(n)=1+1+n+n+n+n=4n+2 可表示为T(n)=0n) (3)i=1;j=0 while(i+j<=n) if (i>j)j++ else i++ 解析: 通过分析以上程序段,可将i+j看成一个控制循环次数的变量,且每执行 次循环,ⅰj的值加1。该程序段的主要时间消耗是 while循环,而whie循环 共做了n次,所以该程序段的执行时间为: T(n)=0n) (4)x=n;//n>1 while(x>=(y+1)*(y+1) 解析: 由x=n且x的值在程序中不变,又 while的循环条件(x>=(y+1)*(y+1))可知 当(y+1)*(y+1)刚超过n的值时退出循环。 由(y+1)*(y+1)n得:y<n^0.5-1 所以,该程序段的执行时间为 向下取整(n^0.5-1) (5)x=91;y=100 while(y>0) f(x>100)} while(i<n); 解析: i=0; //1 k=0; //1 do{ //n k=k+10*i; //n i++; //n } while(i<n);//n 由以上列出的各语句的频度,可得该程序段的时间消耗: T(n)=1+1+n+n+n+n=4n+2 可表示为 T(n)=O(n) (3) i=1; j=0; while(i+j<=n) { if (i>j) j++; else i++; } 解析: 通过分析以上程序段,可将 i+j 看成一个控制循环次数的变量,且每执行一 次循环,i+j 的值加 1。该程序段的主要时间消耗是 while 循环,而 while 循环 共做了 n 次,所以该程序段的执行时间为: T(n)=O(n) (4)x=n; // n>1 while (x>=(y+1)*(y+1)) y++; 解析: 由 x=n 且 x 的值在程序中不变,又 while 的循环条件(x>=(y+1)*(y+1))可知: 当(y+1)*(y+1)刚超过 n 的值时退出循环。 由(y+1)*(y+1)<n 得:y<n^0.5-1 所以,该程序段的执行时间为: 向下取整(n^0.5-1) (5) x=91; y=100; while(y>0) if(x>100)
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有