数据结构基础问题C

来源:百度知道 编辑:UC知道 时间:2024/09/21 15:51:46
计算程序片段时间代价
1.
int i=1;
while(i<=n){
printf("i=%d\n",i);
i=i+1;}
谢谢,我想知道到底怎么算。。。看不懂。要详细的,嘿嘿

你是要程序的执行时间还是什么,如果是计算时间代价(时间复杂度)的话,那这个的时间代价应该是O(n)。这个的核心操作是 printf("i=%d\n",i);i=i+1;每个操作的基本动作时间开销都是常量,那么根据加法规则,两个顺序排列操作的时间代价取两个中的最大值,那么总的时间代价还是一个常数(即O(1)),又因为位于一重循环中,循环重复N次,那么总的执行次数为f(n)=n.所以时间复杂度记为T(n)=0(f(n))=O(n)。

i的初始值是1,也就是一开始就是1,while后面的表达式成立就执行花括号里的语句!比如n是5吧,i就是从1开始,输出1后,i再加1,变成2,还是满足while后的表达式,所以继续执行花括号里的语句,直到i=5为止,就不在执行了!最后得到的结果是1,2,3,4,5!不知道你看明白没有!

这个题很明显,一共执行了n次printf("i=%d\n",i); 所以时间代价就是n了.没什么详细不详细的,执行几次就是几.