总有一天你的谜底会解开 2021-04-23 14:52 采纳率: 77.4%
浏览 77
已采纳

C语言语句频度和时间复杂度的新手问题。

书上说 T(n)= O(f(n))中的f(n)一般为算法中频度语句最大的语句频度。

但是接下来书又举了一个例子:

for(i=1;i<=n;i++)

x++;

书上说这个例子的时间复杂度 是O(n).

我的理解:程序第一行for的语句频度为 n+1,第二行x++的语句频度为n,时间复杂度为何不是O(n+1) 

  • 写回答

2条回答 默认 最新

  • obitosbb 2021-04-23 15:03
    关注

    你这个错在,执行语句的计算,不是看for里的语句,而是看x++这个执行次数;

    其次,n+1约等于n,即使是O(n+1),时间复杂度也是O(n),1可以省略;

    给你举个例子,已经排序好的数组,如果再用冒泡排序,时间复杂度也是0

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

报告相同问题?

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大