python - 有人知道这个算法的 O 表示法吗?我认为这可能是指数级的,但并不完全确定
问题描述
有人知道这个算法的 O 表示法吗?我认为这可能是指数级的,但并不完全确定。
def test(n):
sum = 0
for i in range(0, n//2, 2):
for j in range(0, n//3, 3):
sum += n
return sum
解决方案
对于第一个循环n/2
编号,可以看到,对于每个这样的编号,都会n/3
看到编号。所以O((n/3)*(n/2))
,等于O(n^2)
。
推荐阅读
- python - 在后端存储/缓存繁重的重复操作的最有效方法是什么?
- wordpress - 如何在 Bitnami (GCP) 上的 phpMyAdmin 上安装 SSL/HTTPS
- python - 在python中过滤具有定义阈值的排序数组
- node.js - 如何只允许我的阵列中的电子邮件能够注册一个帐户
- c++ - 为什么 adjustSize 不会在 Qt 中调整 MainWindow 的大小?
- vector - 矢量点积如何与空间中的父对象旋转相关联?
- visual-studio - 发布没有源代码的 NuGet 包
- sql-server - 将列输出为来自不同表的不同数字
- javascript - 如何使用 jquery 优化图像分辨率?
- angular - 我如何更改分页器?