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

这段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日

悬赏问题

  • ¥15 WPF使用Canvas绘制矢量图问题
  • ¥15 用三极管设计一个单管共射放大电路
  • ¥15 孟德尔随机化r语言运行问题
  • ¥15 pyinstaller编译的时候出现No module named 'imp'
  • ¥15 nirs_kit中打码怎么看(打码文件是csv格式)
  • ¥15 怎么把多于硬盘空间放到根目录下
  • ¥15 Matlab问题解答有两个问题
  • ¥15 LCD12864中文显示
  • ¥15 在使用CH341SER.EXE时不小心把所有驱动文件删除了怎么解决
  • ¥15 gsoap生成onvif框架