У меня есть следующая разреженная матрица, содержащая элементы 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
.