哪个是在Java中实现稀疏向量的最佳方法?

时间:2009-12-19 22:01:00

标签: java sparse-array

在Java中实现稀疏向量的最佳方法是什么?

当然,好处是可以很容易地操作(标准化,标量产品等)

提前致谢

3 个答案:

答案 0 :(得分:2)

MTJSparse Vector个班级。它具有范数函数(1范数2范数和∞范数)和点积函数。

答案 1 :(得分:2)

JScience有一个SparseVector实现,是linear algebra包的一部分。

答案 2 :(得分:2)

您还可以尝试查看la4jCompressedVector实施情况。它使用一对数组:值数组和其指标数组。并且通过二进制搜索,它只是飞行。因此,此实施可确保O(log n) / get操作的set运行时间。

只是一个简短的例子

Vector a = new CompressedVector(new double[]{ 1.0, 2.0, 3.0 }).

// calculates L_1 norm of the vector
double n = a.norm();

// calculates the sum of vectors elements
double s = a.fold(Vectors.asSumAccumulator(0.0));