gpt4 book ai didi

clojure subvec O(n) 而不是 O(1)?

转载 作者:行者123 更新时间:2023-12-02 14:22:42 25 4
gpt4 key购买 nike

所以我有

(def a (vec (range 1000000)))
(def b (vec (range 100000)))

并取两个向量的其余部分

(time (dorun (subvec b 1 100000)))
=>"Elapsed time: 3.585556 msecs"
(time (dorun (subvec a 1 1000000)))
=>"Elapsed time: 43.088316 msecs"

文档说这个操作需要 O(1)。我错过了什么吗?

最佳答案

dorun 使用该时间来遍历整个向量切片。

顺便说一句,向量并不懒惰;将它们包装在 dorun/doall 中是毫无意义的。

关于clojure subvec O(n) 而不是 O(1)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16755670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com