获取包含当前元素对的列表和包含所有其他元素的列表的最快方法是什么?这应该很快,因为列表可能包含一百万个或更多元素。
例如,给定列表(1 2 3)
我想要得到列表((1 (2 3)) (2 (1 3)) (3 (1 2)))
谢谢你的帮忙!
发布于 2011-12-13 06:28:05
使用集合怎么样?
user> (let [xs #{1 2 3}]
        (for [x xs] [x (disj xs x)]))
([1 #{2 3}] [2 #{1 3}] [3 #{1 2}])在一个有一百万个项目的集合上做这件事在时间上是不是太糟糕了:
(let [xs (set (range 1000000))]
  (time (count (for [x xs] [x (disj xs x)]))))
"Elapsed time: 841.668 msecs"
1000000https://stackoverflow.com/questions/8473822
复制相似问题