这段matlab代码时间复杂度是多少?
for h=1:P
if mplength(:,h)> D0
bufuhemp(:,h)=[h];
end
end

这段matlab代码时间复杂度是多少?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- soar3033 2021-11-18 21:33关注
if mplength(:,h)> D0
bufuhemp(:,h)=[h];
end上面这段是固定的判断,在时间复杂度上可以看成定值。我们在matlab里可以以disp(1)代替。
这样一来程序就成了
for h=1:P
disp(1)
end
显然,假设disp(1)的执行时间是k,则总时间是k*P。执行实现与P的大小程线性关系,所以是O(n)然后可以在matlab里验证一下,先把p改成10000,显示运行时间是0.26秒
再把p改成100000,显示运行时间是2.5秒,基本是之前的10倍,显示的确是O(n)的关系
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录