社区
数据结构与算法
帖子详情
[入门级问题]请教一段程序的时间复杂度!
robottryer
2007-03-29 03:52:37
void fun3(int n)
{
int i=0,s=0;
while (s<n)
{
i++;
s=s+i;
}
}
具体怎么分析这段程序的复杂度.
...全文
328
9
打赏
收藏
[入门级问题]请教一段程序的时间复杂度!
void fun3(int n) { int i=0,s=0; while (s<n) { i++; s=s+i; } } 具体怎么分析这段程序的复杂度.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
robottryer
2007-03-30
打赏
举报
回复
明白了 谢谢大家指教 散分
houdy
2007-03-30
打赏
举报
回复
下来后我又想了一下,答案确实应该是O(N^1/2)。这里的时间复杂度是个循环的次数有关,而循环的次数又和输入的参数n有关:
设迭代的次数是K,则:
K(K+1)/2 = N
在N很大的情况下,==> K^2 = 2N
===> 这样就可以得出时间复杂度是O(N^1/2);
GetTheWorld
2007-03-29
打赏
举报
回复
执行次数x x^2<6n
houdy
2007-03-29
打赏
举报
回复
复杂度肯定小于N/2的,其实就是数列1、3、6、10...,增长速度大于数列1、3、5、6....但具体是多少还望高手解答
-----
1
3 -- 1+2
6 -- 1+2+3
10 -- 1+2+3+4
15 -- 1+2+3+4+5
naturezmt
2007-03-29
打赏
举报
回复
对于第一个问题,用T(n)表示S的值,用F(n)表示i的值,则它们的关系为:
T(n+1) = T(n)+F(n);
F(n+1) = F(n)+1 = (n+1);
====>
T(n+1) = T(n)+(n+1);
接下来就需要解这个递归方程式,这里使用"展开"的方法:
T(n+1) = T(n)+(n+1) = T(n-1)+n+(n+1) = T(n-2)+(n-1)+n+(n+1) = ....
= T(0)+1+2+...+(n+1)
到了这里我们就可以知道,它的时间复杂度应该是O(N^2)即"平方"的时间复杂度。
-----------------------------------------
复杂度肯定小于N/2的,其实就是数列1、3、6、10...,增长速度大于数列1、3、5、6....但具体是多少还望高手解答
houdy
2007-03-29
打赏
举报
回复
对于第一个问题,用T(n)表示S的值,用F(n)表示i的值,则它们的关系为:
T(n+1) = T(n)+F(n);
F(n+1) = F(n)+1 = (n+1);
====>
T(n+1) = T(n)+(n+1);
接下来就需要解这个递归方程式,这里使用"展开"的方法:
T(n+1) = T(n)+(n+1) = T(n-1)+n+(n+1) = T(n-2)+(n-1)+n+(n+1) = ....
= T(0)+1+2+...+(n+1)
到了这里我们就可以知道,它的时间复杂度应该是O(N^2)即"平方"的时间复杂度。
wth1150
2007-03-29
打赏
举报
回复
n
tailzhou
2007-03-29
打赏
举报
回复
第一个是n^(1/2);
第二个要看用什么方法,
直接建链表应该是n^2;
如果先排序,再建链表,肯定可以到nlogn;
robottryer
2007-03-29
打赏
举报
回复
还有一个问题
给定有n个元素的向量,建立一个有序单链表的时间复杂度是?
如何学习FPGA、让自己高大上起来 关注行业发展
FPGA(Field-Programmable Gate Array)是一种可编程逻辑器件,它允许用户根据需求配置其内部逻辑,从而实现各种复杂的功能。FPGA在电子工程领域有着广泛的应用,包括通信、计算机、工业控制等多个行业,因此掌握...
USACO
入门级
C++编程源代码示例与习题解析
函数是
一段
代码块,能够完成特定的任务。在C++中,函数由返回类型、函数名、参数列表和函数体组成。函数不仅可以被定义,还可以被调用,使得
程序
结构更加模块化。// 函数声明// 函数调用return 0;// 函数定义。
Java开发入门教程!java编辑器手机版下载
一、前言 ...红黑树具有良好的效率,它可在近似O(logN)
时间复杂度
下完成插入、删除、查找等操作,因此红黑树在业界也被广泛应用,比如 Java 中的 TreeMap,JDK 1.8 中的 HashMap、C++ STL 中的 map
基于微信的点餐小
程序
开发与设计
摘 要伴随着现今经济的快速发展,越来越越多的人离不开手机了,几乎一下班第一件事情就是拿起手机,大多数人喜欢玩游戏刷视频,出门的时间就很少了,而此时微信上的小
程序
也渐渐成为人们的喜爱之一,为此为了方便...
数据结构与算法
33,028
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章