3
我實現了一個鄰接表爲Array[List[Int]]
和基本圖表生成程序是這樣的圖作爲鄰接表性能
val edges : List[(Int, Int)] = ...
val adj = Array.fill(v)(List.empty[Int])
edges foreach { case(t, h) => adj(t) = h::adj(t) }
此實現的作品比Java實現(500萬個邊緣測試)的約四倍慢在ArrayList<Integer>[]
。在Java邊緣最初存儲爲ArrayList<int[]>
。任何關於如何使Scala版本更快的想法?
如果性能是首要因素,請使用兩個數組。這些對由給定索引處的每個數組中的條目形成。 –
您可以提供可以運行的完整的Java和Scala程序嗎? –