“assoc”的时间复杂度是多少? 方案中的函数?
这个漂亮的函数“assoc”的时间复杂度是多少?
What is the time complexity of this nifty function 'assoc'?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
这个漂亮的函数“assoc”的时间复杂度是多少?
What is the time complexity of this nifty function 'assoc'?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
我假设
assoc
是 O(n)*,假设equal?
在您使用该函数时是 O(1)。 这是因为编写您自己的assoc
版本非常简单:您可以看到它只是在列表
lst
中向下滑动,直到找到匹配项。 如果没有找到,则返回#f
。* 技术上
等于?
是 O(n),其中 n 是较小输入的大小,因此如果您使用assoc
比较巨大的列表结构,您的运行时间将为 O (n*m),其中n
是提供给assoc
的列表的大小,m
是v
的大小>。I would assume that
assoc
is O(n)*, assuming thatequal?
is O(1) in your usage of the function. This is because it's trivial to write your own version ofassoc
:You can see this simply slides down the list
lst
until a match is found. If none is found,#f
is returned.* technically
equal?
is O(n) where n is the size of the smaller input, so if you're comparing huge list structures usingassoc
, your runtime will be O(n*m) wheren
is the size of the list provided toassoc
andm
is the size ofv
.