python - 函数作为参数与循环时间共性
问题描述
我假设当将一个函数(我们称之为函数 B)作为参数传递给函数 A 时,它不一定添加到函数 A 的 big-O
functionA(functionB)
或
len(range(n))
但是如果一个函数在迭代它时被调用,那么它确实会改变 big-o time 共谋。
那么在内置函数上循环不会做同样的事情吗?
这是python中的一个例子:
a=list() # of some array
for _ in range(a):
a.count(1)
我没有CS背景,谁能解释一下。
解决方案
我不完全确定“将函数”传递给函数 B 是什么意思,除非你的意思是使用装饰器......无论如何,如果你在另一个函数中调用一个函数,可以安全地假设你将不得不考虑嵌套函数的时间复杂度。例如,如果我创建一个函数:
def funcA(i_max, j_max):
for i in range(i_max):
for j in range(j_max):
print("aaaaaaaah")
它具有复杂性O(i_max * j_max)
,然后我制作另一个功能:
def funcB(k_max):
for k in range(k_max):
funcA(some_i, some_j)
那么自然 funcB 将具有复杂性O(k_max * some_i * some_j)
——因此您必须考虑其他函数的大 O。
推荐阅读
- python - Plotly 图形对象中线的离散色标(Python)
- django - 无法从基于类的视图 Django 执行条件重定向
- flutter - 在屏幕之间传递数据而不在颤动中更改屏幕
- php - 我正在尝试使用 php 将自定义产品/价格添加到 Stripe 结帐页面
- regex - 熊猫使用正则表达式从字符串列中提取子字符串
- laravel - 如何在 Laravel 上显示 DigitalOcean 私人空间的临时 URL?
- linux - 如何仅在失败时重新启动 Systemd 服务?
- python - 通过屏幕管理器kivy回收输入值
- list - 如何将对象列表中的布尔收藏夹保存到 Flutter 中的共享首选项
- powershell - 卸载应用程序,然后推出一个日志文件以在 Powershell 中确认