Рубрики
Без рубрики

Разреженная матрица и ее представления в java

Разреженная матрица – это двумерный массив, также известный как разреженный массив. В этой матрице большинство… С пометкой java, программирование на java, представления sparsematrix.

Разреженная матрица – это двумерный массив , также известный как разреженный массив . В этой матрице большинство элементов равно нулю, и очень немногие являются ненулевыми элементами.

Например, рассмотрим матрицу из двух строк и трех столбцов. В этой матрице есть только два значения, а остальные пустые. Это вакантное место заполнено нулем.

Почему мы используем разреженную матрицу? |

Это означает, что для поиска всех элементов нам потребуется 2500-кратное сканирование, чтобы найти значение.

Таким образом, вместо сканирования 2500 раз вы можете использовать разреженную матрицу. В разреженной матрице вы можете напрямую получить значения, существующие в матрице.

Каковы различные способы представления разреженной матрицы в памяти?

Разреженная матрица и ее представления в java

Существует два способа представления разреженной матрицы,

  1. Массив представление или форма из трех столбцов
  2. представление связанного списка

Форма из трех столбцов или представление массива

Мы должны создать разреженную матрицу вышеупомянутой матрицы 4 X 4. Для этого у нас есть три столбца: строка, столбец и значение.

В приведенной выше таблице первая строка представлена общим количеством строк, общим количеством столбцов и общим количеством ненулевых значений, существующих в приведенной выше матрице 4 X 4.

Первое общее количество строк в приведенной выше матрице 4 X 4 равно 4. Общее количество столбцов равно 4, а общее количество ненулевых значений равно 6. Прежде чем перейти к следующей строке, вот как выполняется индексация в матрице,

В следующей строке представления формы из трех столбцов рассмотрим строку 0 (матрицы 4 X 4), значение столбца 1 равно 3.

В следующей строке (матрицы 4 X 4) у нас есть строка 1, столбец 0, а значение равно 2. Далее в той же строке у нас значение индексации столбца равно 2, а значение равно 4.

Переходя к следующей строке, значение R2 существует в первом и третьем столбцах. Таким образом, значение равно 1 и 2.

В последней строке (матрицы 4 X 4), которая равна R3, значение столбца 1 равно 3. Вот полная таблица представления формы из трех столбцов,

Как вы можете видеть на изображении выше, представление представлено в этом формате. Для представления формы с тремя столбцами мы должны учитывать ненулевые значения.

Благодаря этому представлению в форме трех столбцов мы можем напрямую обращаться только к ненулевым значениям и игнорируем нулевые значения.

Представление связанного списка

Теперь мы собираемся изучить связанный список для представления разреженной матрицы в java. Для представления связанного списка нам требуются три узла, а три узла имеют разную структуру. Вот структура,

Как вы можете видеть на изображении выше, первый узел состоит из четырех столбцов. Где первый столбец – общая строка, второй – общий столбец, третий – общие ненулевые значения в этой матрице, а последний – указатель, указывающий на следующую строку.

Аналогично предыдущему представлению формы с тремя столбцами (у нас была строка, столбец, значение) после трех столбцов требуется один указатель, указывающий на следующую строку.

Далее идет узел строки. В режиме raw первым является номер строки, вторым – указатель на следующую строку (потому что любая матрица после сканирования всех столбцов должна быть перемещена в следующую строку.

Таким образом, есть один указатель, который приведет вас к следующей строке), а третий – указатель на столбец.

Последним является узел столбца. В узле столбца первым является номер столбца, вторым – значение, существующее в столбце, а третьим – указатель на следующее значение в той же строке. Давайте разберемся в представлении связанного списка на примере,

Я использую ту же матрицу 4 X 4, которая используется в представлении в виде трех столбцов. Таким образом, для представления связанного списка матрицы 4 X 4 первым является головной узел.

Этот головной узел содержит четыре строки, четыре столбца и шесть ненулевых значений. Далее идет указатель, который будет указывать на первую строку матрицы.

Первая строка означает R0 ( см. изображение “Индексирование” выше), а ее следующий указатель указывает на следующую строку R1. Следующий указатель указывает на строку 2 (R2), а его следующий указатель указывает на последнюю строку R3.

Итак, в строке 0 значение первого столбца равно 3. Поскольку в той же строке нет другого значения, последний указатель будет равен нулю ( см. Изображение выше, представленное как X ).

Переход к следующей строке, то есть указатель первой строки (R1) указывает на столбец 0, а значение равно 2.

Затем он снова указывает на следующий столбец, где значение столбца равно 4, и в той же строке нет другого значения, поэтому оно равно нулю.

Теперь вторая строка ( R2) имеет два значения итак, у меня есть два узла. Первый в строке 2 столбец 1, значение равно 1, и оно указывает на значение следующего столбца.

Столбец номер 3 имеет значение 2 и не указывает на следующую строку, поэтому он равен нулю. Переходим к последней строке R3; узел столбца в столбце 1 у нас есть значение 3, и оно не указывает ни на какое другое ненулевое значение в той же строке, поэтому оно равно нулю.

Итак, это все о разреженной матрице и ее представлениях в java.

Оригинал: “https://dev.to/lohith/sparse-matrix-and-its-representations-in-java-b90”