My assignment is to test which algorithm is more efficient in transposing a matrix: a Naive or Fast Sparse algorithm. I need to construct functions for reach algorithm that call from an input file, which is a sparse Matrix.
A text file called M5x5.mat looks like this.
5 5 11
0 3 297
1 0 230
1 4 291
2 0 390
2 2 250
2 3 286
2 4 330
3 2 333
3 4 464
4 0 184
4 3 347
5 and 5 represent the 5x5 matrix and 11 the number of elements. M10x10 has 50 elements and so on. The matrice is set up , with the first column being 'row', second column being 'col' and the third column being 'value'.
My main problem is that I don't know how to convert a text file like this into a matrice that I can use. I wasn't taught how to in my previous classes and I think my professor assumes that we know how.
I need to know how to print out the matrice as it appears on the text and a new transposed Matrice.
My primary assignment was to measure each algorithm in efficiency. I do this by adding units every time the for loop executes.
This is the Fast Transpose algorithm in pseudocode, using the units counter as mentioned:
start of algorithm/
for (i=0; i < M[0].row; i++)
rowterms[i]=0;
units++;
for (i=1; i<=M[0].value; i++)
rowterms[M[i].col]++;
units++;
startingposition[0]=1
for (i=1; i< M[0].row; i++)
startingposition[i] = startingposition[i-1] + rowterms[i-1]
units++;
/*primary transpose alg*/
for (i=1; i<= M[0].value; i++)
{
j=startingposition[M[i].col]++
/*Mt is the transposed matrice*/
Mt[j].row = M[i].col
Mt[j].col = M[i].row
Mt[j].value = M[i].value
units++;
/end of algorithm
That's just one of the algorithms.
Summing up what I need:
1. How to call the input matrice files and implement them in the functions. Or to convert the txt file into a matrice?
2. How to print out the matrices.
3. I would like to have the pseudocode above converted into a java function complemented with the calling of the Matrice file, but if that's too much, I understand.