循环的时间复杂性

编程入门 行业动态 更新时间:2024-10-17 16:24:50
本文介绍了循环的时间复杂性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我不确定以下C:代码块的复杂性:

int i = 0, j = 1; for ( i = 0; i < n * n; i += j ) { O1(); j += 2; }

其中,O1是一个显然需要恒定时间来执行的函数。现在,我知道其计数器在每次迭代中以恒定量增加的循环通常具有O(sqrt(n))的复杂性,但是这里也是这样吗?还是O(sqrt(n^2)),即O(n)?

谢谢

推荐答案

我知道,其计数器在每次迭代中以恒定数量增加的循环的复杂度通常为O(SQRT(N))

这是假的。计数器每次迭代递增的循环为O(N)。

计数器在每次迭代中线性增加的循环为O(SQRT(N))。

在本例中,N是n * n,因为这就是循环要循环到的位置,所以简单的替换告诉您,是的,操作是O(sqrt(n^2))或O(N)。

更多推荐

循环的时间复杂性

本文发布于:2023-11-29 20:51:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1647599.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:复杂性   时间

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!