Помогите понять суть задачи
"Реализовать работу с векторами и матрицами, представленными в виде разреженных списков. Реализовать операции сложения, умножения на скаляр, умножение матрицы на вектор, умножение матриц, транспонирования матриц." Так звучит условие задачи, меня интересует что такое разреженный список и что нужно знать для реализации данной задачи. Буду писать на с++
Ответы (1 шт):
Разреженные структуры данных - это структуры, которые хранят только действительные данные. Если заведена логическая матрица 1000х1000, то физически в памяти не будет ничего, если она не заполнена. Если обратиться к элементу, который не заведен, то вернется значение по умолчанию. Для умножения на скаляр - можно не пробегать по всем ячейкам, а умножать только заведенные. Это конечно сложнее реализовать, но за счет этого экономится память и достигается повышение скорости работы. Больше по теме: wiki2.org/en/Sparse_array
Имеется в виду, что нужно не заводить двухмерный массив N*N для матрицы, а вместо этого сделать список ненулевых элементов.