让我们假设我有这个输入:列表列表
(def list-of-list-3 (list (list 1 2 3) (list 4 5 6) (list 7 8 9))
(map #(reduce * %1) list-of-list3 )
在这种情况下,map-reduce 的复杂度为 O(n^2)?
map-reduce 被翻译成两个嵌套的 for 吗?
因此,当我在 clojure REPL 上运行上述示例时,复杂度时间看起来像 O(n)。
当我复制输入大小时( list-of-list-6 (list (list 1 2 3) (list 4 5 6) (list 7 8 9) (list 8 2 3) (list 9 8 1) (list 7 6 4)) ) 时间以线性方式增加,而不是二次增加。
谁能说出为什么?
提前致谢