Solved

Array Question - Strassens Method - Urgent

Posted on 2003-12-05
7
229 Views
Last Modified: 2010-03-31
Say Im implementing Strassens method for an array that is larger than 2x2(say 4x4 n=4). And say I calculated each sub array correctly (the 4 n/2 pieces) and I want to construct the new nxn matrix that holds the solution. Whats the easiest/most efficient way to reconstruct a larger array from the smaller pieces, just a for loop or is there something easier.  
0
Comment
Question by:Akindo
  • 2
  • 2
  • 2
  • +1
7 Comments
 

Author Comment

by:Akindo
ID: 9884020
Also, on the opp side of the question whats the easiest way to deconstruct the array in 4 n/2 pieces, basically the 4 quadrants...also a double for loop??
0
 
LVL 86

Accepted Solution

by:
CEHJ earned 250 total points
ID: 9884198
Looping, AFAIK, can't be avoided, but you can System.arraycopy where there's subarrays, so every single element need not be looped over.
0
 

Author Comment

by:Akindo
ID: 9884446
how would it work for a two dimensional array, say I have

a=2x2
b=2x2
c=2x2
d=2x2

and I want a 4x4 array like
ab
cd
whats the most efficient way to do that?
 
0
Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

 
LVL 92

Expert Comment

by:objects
ID: 9884779
Are you actually using 2d array in your internal representation, and is it that required.
0
 
LVL 2

Expert Comment

by:Tols
ID: 9885449
Maybe some tree structure coud simplify that;

class Matrix
{
     Matrix parent;
     int leafValue = null;
     Matrix[][] children = null; //could be ArrayList
     public Matrix(Matrix parent, int leafValue) //for leafs
     {
         this.parent = parent;
         this leafValue = leafValue;
     }
     public Matrix(Matrix parent) //for nodes
     {
         this.parent = parent;
     }
     public int getValue() //possible modification for other data
    {
         if (children == null) return leafValue;
         //calculate value of submatrix
         int val = children[0][0].getValue()+children[1][1].getValue() ....//recurrent calls
         return val;
    }

}



I hope it help ;-)
0
 
LVL 2

Expert Comment

by:Tols
ID: 9885481
Above class can be modified fo keeping one data for each submatrixes - they shoud keep a range of data in global matrix...
0
 
LVL 92

Expert Comment

by:objects
ID: 9885514
> and I want a 4x4 array like
> ab
> cd

int[][] result = new int[4][4];
for (int i=0; i<2; i++)
{
   System.arraycopy(a[i], 0, result[i], 0, 2);
   System.arraycopy(b[i], 0, result[i], 2, 2);
   System.arraycopy(c[i], 0, result[i+2], 0, 2);
   System.arraycopy(d[i], 0, result[i+2], 2, 2);
}
0

Featured Post

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

INTRODUCTION Working with files is a moderately common task in Java.  For most projects hard coding the file names, using parameters in configuration files, or using command-line arguments is sufficient.   However, when your application has vi…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
This video teaches viewers about errors in exception handling.
This tutorial will introduce the viewer to VisualVM for the Java platform application. This video explains an example program and covers the Overview, Monitor, and Heap Dump tabs.

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now