This Java Program is to Implement Sparse Matrix.In the subfield of numerical analysis, a sparse matrix is a matrix populated primarily with zeros (Stoer & Bulirsch 2002, p. 619) as elements of the table. By contrast, if a larger number of elements differ from zero, then it is common to refer to the matrix as a dense matrix. The fraction of zero elements (non-zero elements) in a matrix is called the sparsity (density).
Here is the source code of the Java Program to Implement Sparse Matrix. The Java program is successfully compiled and run on a Linux system. The program output is also shown below.
public class SparseMatrix
{
private int N;
private SparseArray sparsearray[];
public SparseMatrix(int N)
{
this.N = N;
sparsearray = new SparseArray[N];
for (int index = 0; index < N; index++)
{
sparsearray[index] = new SparseArray(N);
}
}
public void store(int rowindex, int colindex, Object value)
{
if (rowindex < 0 || rowindex > N)
throw new RuntimeException("row index out of bounds");
if (colindex < 0 || colindex > N)
throw new RuntimeException("col index out of bounds");
sparsearray[rowindex].store(colindex, value);
}
public Object get(int rowindex, int colindex)
{
if (rowindex < 0 || colindex > N)
throw new RuntimeException("row index out of bounds");
if (rowindex < 0 || colindex > N)
throw new RuntimeException("col index out of bounds");
return (sparsearray[rowindex].fetch(colindex));
}
public static void main(String... arg)
{
Integer[][] iarray = new Integer[3][3];
iarray[0][0] = 1;
iarray[0][1] = null;
iarray[0][2] = 2;
iarray[1][0] = null;
iarray[1][1] = 3;
iarray[1][2] = null;
iarray[2][0] = 4;
iarray[2][1] = 6;
iarray[2][2] = null;
SparseMatrix sparseMatrix = new SparseMatrix(3);
for (int rowindex = 0; rowindex < 3; rowindex++)
{
for (int colindex = 0; colindex < 3; colindex++)
{
sparseMatrix.store(rowindex, colindex,
iarray[rowindex][colindex]);
}
}
System.out.println("the sparse Matrix is ");
for (int rowindex = 0; rowindex < 3; rowindex++)
{
for (int colindex = 0; colindex < 3; colindex++)
{
System.out.print(sparseMatrix.get(rowindex, colindex) + "\t");
}
System.out.println();
}
}
}
class List
{
private int index;
private Object value;
private List nextindex;
public List(int index)
{
this.index = index;
nextindex = null;
value = null;
}
public List()
{
index = -1;
value = null;
nextindex = null;
}
public void store(int index, Object value)
{
List current = this;
List previous = null;
List node = new List(index);
node.value = value;
while (current != null && current.index < index)
{
previous = current;
current = current.nextindex;
}
if (current == null)
{
previous.nextindex = node;
}
else
{
if (current.index == index)
{
System.out.println("DUPLICATE INDEX");
return;
}
previous.nextindex = node;
node.nextindex = current;
}
return;
}
public Object fetch(int index)
{
List current = this;
Object value = null;
while (current != null && current.index != index)
{
current = current.nextindex;
}
if (current != null)
{
value = current.value;
}
else
{
value = null;
}
return value;
}
public int elementCount()
{
int elementCount = 0;
for (List current = this.nextindex; (current != null); current = current.nextindex)
{
elementCount++;
}
return elementCount;
}
}
public class SparseArray
{
private List start;
private int index;
SparseArray(int index)
{
start = new List();
this.index = index;
}
public void store(int index, Object value)
{
if (index >= 0 && index < this.index)
{
if (value != null)
start.store(index, value);
} else
{
System.out.println("INDEX OUT OF BOUNDS");
}
}
public Object fetch(int index)
{
if (index >= 0 && index < this.index)
return start.fetch(index);
else
{
System.out.println("INDEX OUT OF BOUNDS");
return null;
}
}
public int elementCount()
{
return start.elementCount();
}
}
$javac SparseMatrix.java $java SparseMatrix the sparse Matrix is 1 null 2 null 3 null 4 6 null
Related posts:
Spring Boot - Creating Docker Image
Split a String in Java
Java Program to Compute Cross Product of Two Vectors
Java Program to Implement Hash Tables with Double Hashing
Create a Custom Auto-Configuration with Spring Boot
How to Manually Authenticate User with Spring Security
Java Program to Implement String Matching Using Vectors
Guide to Spring @Autowired
Receive email using POP3
Giới thiệu Aspect Oriented Programming (AOP)
Spring JDBC
Map Serialization and Deserialization with Jackson
Spring Boot - Hystrix
Concatenating Strings In Java
RestTemplate Post Request with JSON
Java Program to Implement SimpeBindings API
Registration – Activate a New Account by Email
Java Program to Check Whether an Input Binary Tree is the Sub Tree of the Binary Tree
Java Program to Implement JobStateReasons API
Iterating over Enum Values in Java
Hướng dẫn Java Design Pattern – Bridge
Java Program to Implement TreeSet API
Hướng dẫn kết nối cơ sở dữ liệu với Java JDBC
HttpClient 4 Cookbook
Uploading MultipartFile with Spring RestTemplate
Spring Boot - Eureka Server
Create Java Applet to Simulate Any Sorting Technique
Daemon Threads in Java
Java Program to Find the Vertex Connectivity of a Graph
Java Program to Implement Ternary Search Algorithm
Model, ModelMap, and ModelAndView in Spring MVC
Introduction to Spring Cloud Netflix – Eureka