wglnbb 2021-11-18 20:43 采纳率: 80%
浏览 95
已结题

这段matlab代码时间复杂度是多少?

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

  • 写回答

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秒

    img

    再把p改成100000,显示运行时间是2.5秒,基本是之前的10倍,显示的确是O(n)的关系

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月27日
  • 已采纳回答 11月19日
  • 修改了问题 11月18日
  • 创建了问题 11月18日