什么是算法的时间复杂度?
展开全部
一个算法花费的时间与算法中语句的执行次数成正比例,时间复杂度一般用O(f(x))表示.
f(x)在简单程序中就是看有几个for循环,然后看看再它的判断语句,就是看看它执行了几次,f(x)=“执行的次数”。
像题中的(1)有一个for循环执行次数为n次,所以f(x)=n,时间复杂度就为O(n)
(2)有两个for循环执行次数为n*n,即n的平方,所以f(x)=n的平方,时间复杂度就是O(n的平方)。
(3)是递归,它也执行了n次所以它的时间复杂度就是O(n).
不过要注意时间复杂度的f(x)在有限次时就用具体数值表示,无限次时就用n,n的平方,log以2为底n的对数,其实很简单就是看n的最高次方,看n的最高次方等于几,f(x)就等于几。
f(x)在简单程序中就是看有几个for循环,然后看看再它的判断语句,就是看看它执行了几次,f(x)=“执行的次数”。
像题中的(1)有一个for循环执行次数为n次,所以f(x)=n,时间复杂度就为O(n)
(2)有两个for循环执行次数为n*n,即n的平方,所以f(x)=n的平方,时间复杂度就是O(n的平方)。
(3)是递归,它也执行了n次所以它的时间复杂度就是O(n).
不过要注意时间复杂度的f(x)在有限次时就用具体数值表示,无限次时就用n,n的平方,log以2为底n的对数,其实很简单就是看n的最高次方,看n的最高次方等于几,f(x)就等于几。
瑞地测控
2024-08-12 广告
2024-08-12 广告
在苏州瑞地测控技术有限公司,我们深知频率同步与相位同步的重要性。频率同步确保两个或多个设备的时钟频率变化一致,但相位(即时间点)可保持相对固定差值。而相位同步,即时间同步,要求不仅频率一致,相位也必须完全一致,即时间差恒定为零。相位同步的精...
点击进入详情页
本回答由瑞地测控提供
展开全部
是说明一个程序根据其数据n的规模大小 所使用的大致时间和空间
说白了 就是表示 如果随着n的增长 时间或空间会以什么样的方式进行增长
例
for(int i = 0; i < n;++i)
;
这个循环执行n次 所以时间复杂度是O(n)
for(int i = 0; i< n;++i)
{
for(int j = 0; j< n;++j)
;
}
这嵌套的两个循环 而且都执行n次
那么它的时间复杂度就是 O(n^2)
时间复杂度只能大概的表示所用的时间
而一些基本步骤 所运行的时间不同 我们无法计算 所以省略
如
for(int i = 0;i < n;++i)
a = b;
和
for(int i = 0;i < n;++i)
;
这个运行的时间当然是第二个快 但是他们的时间复杂度都是 O(n)
判断时间复杂度看循环
说白了 就是表示 如果随着n的增长 时间或空间会以什么样的方式进行增长
例
for(int i = 0; i < n;++i)
;
这个循环执行n次 所以时间复杂度是O(n)
for(int i = 0; i< n;++i)
{
for(int j = 0; j< n;++j)
;
}
这嵌套的两个循环 而且都执行n次
那么它的时间复杂度就是 O(n^2)
时间复杂度只能大概的表示所用的时间
而一些基本步骤 所运行的时间不同 我们无法计算 所以省略
如
for(int i = 0;i < n;++i)
a = b;
和
for(int i = 0;i < n;++i)
;
这个运行的时间当然是第二个快 但是他们的时间复杂度都是 O(n)
判断时间复杂度看循环
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询