请教两个题目

zalyer 2003-12-08 01:36:07
请教两个题目:
1. 19*n*(logn)^2+2*n*sqrt(n)+5*n用O的表示是:
请问大家这个怎么做,我用求极限,但是算不出来。请大家给一个详细的解答过程。
2.设计一递归算法判定整数数列(n个整数)中是否有重复元素。
这种好像没有明显递归性的题目怎么做丫。
3.如何分析一个递归的时间复杂度丫。
...全文
82 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zalyer 2003-12-09
  • 打赏
  • 举报
回复
哦。才这么几个人给解答丫。
To:saint001(saint001)
请问第一个是怎么算出来的。可以告诉我过程吗?
saint001 2003-12-09
  • 打赏
  • 举报
回复
就是按照高中的数学知识:初等函数增长快慢就可以了
不过
logn是不与任何幂函数同阶的
精确的说
lim(x->∞)[ log(n)^2 / sqrt(n) ] = 0
来说log(n)^2与sqrt(n)同阶
应该是lim(x->∞)[ G(n) / F(n) ] = c,c>0且有限
才有G(n)与F(n)同阶


sqrt(n)和任何幂函数一样,阶数都高于log(n)和log(n)^2
对数函数增长速度小于幂函数,无论前者多少次平方,后者的幂次多么低(只要>0)
dengsf 2003-12-09
  • 打赏
  • 举报
回复
1、个人认为,不必用到求极限那么精确的方法,只需要取 增长速度 最快的就行了,常数因子什么的可以不管,一般最常见的复杂度关系如下:
logn < sqrt(n) < n < nlogn < n^2 <... < 2^n

对于有特殊形式的才需要简单讨论一下的,比如上面的 (logn)^2.

不过第一题,我觉得应该是 O(n*sqrt(n)),
因为: lim(x->∞)[ log(n)^2 / sqrt(n) ] = 0.
saint001 2003-12-08
  • 打赏
  • 举报
回复
递归的时间复杂度也是个递归
顺着来说是递推
zzwu 2003-12-08
  • 打赏
  • 举报
回复
'3.递归的时间复杂度。' 决定于递归的每一步的时间复杂度D,再乘上一个N, 即O(n*D)。
saint001 2003-12-08
  • 打赏
  • 举报
回复
bool different(int x[],int n)
{
if(!n)
return true;
for(int i=0;i<n-1;i++)
if(x[i]==x[n-1])
return false;
return different(x,n-1);
}
saint001 2003-12-08
  • 打赏
  • 举报
回复
1.
O(n*(logn)^2)
lyff8neo 2003-12-08
  • 打赏
  • 举报
回复
mark

33,029

社区成员

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

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