| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1237 人关注过本帖
标题:关于算法的时间复杂度
取消只看楼主 加入收藏
forice
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2005-8-25
收藏
 问题点数:0 回复次数:0 
关于算法的时间复杂度
看了一些书,大致明白了一点点有关时间复杂度,想在这里请教各位。

比如说
for(int i=0;i<n;i++)
{
do...
}
这个的时间复杂度为o(n)吧?


for(int i=0;i<n;i++)
for(int j=0;j<n-1;i++)
{
do...
}
这个的时间复杂度为o(n^2)吧?(n 的平方)
再比如说一个折半查找算法:
void sort(int a[],int n,int x)
{
int left=1;
int right=n;
int mid;
int flag=0;
while((!flag)&&(left<=right))
{
mid=(left+right)/2;
if(x==a[mid])
{
printf("%d is the %d\n",x,mid);
flag=1;
}
else if (x>a[mid])
left=mid+1;
else right=mid-1;
}
}
这个的时间复杂是要怎么算的?
它跟for循环有什么关系没有?比如如果有三个for语句,是不是就是o(n^3)?
还有,那些时间复杂度为o(log n)的和o(2^n)的是什么样的算法呢?
搜索更多相关主题的帖子: 算法 int 时间 sort void 
2006-09-24 20:41
快速回复:关于算法的时间复杂度
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.059657 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved