下列程序的时间复杂度?

ydyd 2003-04-11 06:39:31
int i;k=0;n=100;
do{
k=k+10*i;
i=i++;
}while(i!=n);

我觉得是O(n)而书上答案是O(1),到底是那个呢?
...全文
108 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
pig_liang 2003-04-15
  • 打赏
  • 举报
回复
我觉得这问题本身有一定的问题。

int i;//你能知道i 的初始值?
如果 int i=0;的话,没话说它的时间复杂度是O(n).
DavidBone 2003-04-15
  • 打赏
  • 举报
回复
ding
BlueSky2008 2003-04-15
  • 打赏
  • 举报
回复
O(n)
ppm07 2003-04-14
  • 打赏
  • 举报
回复
那请问这道题如何改,答案才是O(n)呢?
laoli 2003-04-14
  • 打赏
  • 举报
回复
o((n+10)*i)
azuretttc 2003-04-14
  • 打赏
  • 举报
回复
void f(int n)
{
int i;k=0;
do{
k=k+10*i;
i=i++;
}while(i!=n);
}
这样就可以了吧!不过实在是没什么意义!
wwzzgg 2003-04-14
  • 打赏
  • 举报
回复
按道理讲应为O(n),但时间复杂度应在n是变量的前提下才符合常规。不要理它,出题者水平实在低下。
azuretttc 2003-04-13
  • 打赏
  • 举报
回复
呵呵,是O(1)啦,这N等于是个常量嘛!
i = ++((i++)+(++i)+(i++));
printf("%d", ++(i++));
这种题的确无聊,而且不同的编译器有不同的答案
ydyd 2003-04-12
  • 打赏
  • 举报
回复
我也觉得无聊,但是不知道考研会不会这样考。
ZhangYv 2003-04-12
  • 打赏
  • 举报
回复
比如一题:
i = ++((i++)+(++i)+(i++));
printf("%d", ++(i++));
ZhangYv 2003-04-12
  • 打赏
  • 举报
回复
这种考题最无聊!如果是我肯定答O(n),虽然会错...
Wugifer 2003-04-11
  • 打赏
  • 举报
回复
如果 n 是定值而不是描述问题规模的变量,就是 O(1)
Riemann 2003-04-11
  • 打赏
  • 举报
回复
O(n)
zyplwt 2003-04-11
  • 打赏
  • 举报
回复
我也认为是o(n)

33,029

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧