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

在Java中实现稀疏向量的最佳方法是什么?,java,sparse-array,Java,Sparse Array,在Java中实现稀疏向量的最佳方法是什么 当然,好的方面是有一些可以很容易操作的东西(标准化、标量积等等) 提前感谢有课。它具有范数函数(1-范数2-范数和∞-标准)和点积函数。有一个类。它具有范数函数(1-范数2-范数和∞-norm)和dot产品功能。的实现是其软件包的一部分。的实现是其软件包的一部分。您也可以尝试查看的实现。它使用一对数组:值数组和它们的标记数组。再加上二进制搜索,它就会飞起来。因此,这个实现保证了O(logn)运行get/set操作的时间 只是一个简单的例子 Vector

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

当然,好的方面是有一些可以很容易操作的东西(标准化、标量积等等)


提前感谢

有课。它具有范数函数(1-范数2-范数和∞-标准)和点积函数。

有一个类。它具有范数函数(1-范数2-范数和∞-norm)和dot产品功能。

的实现是其软件包的一部分。

的实现是其软件包的一部分。

您也可以尝试查看的实现。它使用一对数组:值数组和它们的标记数组。再加上二进制搜索,它就会飞起来。因此,这个实现保证了
O(logn)
运行
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));

您还可以尝试查看的实现。它使用一对数组:值数组和它们的标记数组。再加上二进制搜索,它就会飞起来。因此,这个实现保证了
O(logn)
运行
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));