我有一个包含
O(N)
元素的稀疏矩阵。boost::numeric::ublas::compressed_matrix<int> adjacency (N, N);
我可以写一个暴力双重循环来在O(N^2)
时间内遍历所有条目,如下所示,但这样会太慢。
for(int i=0; i<N; ++i)
for(int j=0; j<N; ++j)
std::cout << adjacency(i,j) std::endl;
如何在O(N)
时间内只循环非零条目?对于每个非零元素,我想访问其值和索引i,j
。