2012-04-07 21 views
1

Ich habe viele Themen über das Finden der Position des angegebenen Elements im Array gesehen, aber ich kann ihre Lösungen nicht auf mein Problem anwenden oder angemessen finden.Position des minimalen Elements im Array finden

Ich habe einen gezackten Array:

double[][][] _distance = new double[_mapSize][_mapSize][1]; 
//incorrect, but for clarifying array's structure 

Und ich brauche Indizes von mindestens Element zu erhalten.

Wenn

_distance[2][5][0] 

minimal ist, muss ich "2" und "5"

Vielen Dank im Voraus erhalten!

Antwort

2

Versuchen Sie, die folgenden

Tuple<int, int, int> minimumIndex = null; 
double minimumValue = Double.Max; 

for (var i = 0; i < _mapSize; i++) { 
    for (var j = 0; j < _mapSize; j++) { 
    for (var k = 0; k < _lastDimension; k++) { 
     var current = _distance[i][j][k]; 
     if (current <= minimumValue) { 
     minimumValue = current; 
     minimumIndex = Tuple.Create(i, j, k); 
     } 
    } 
    } 
} 

Console.WriteLine("{0} {1} {2}", minimumIndex.Item1, minimumIndex.Item2, minimumIndex.Item3); 
+1

+1. Überhaupt nicht effizient, aber wenn es das ist, wonach er sucht, gibt es keinen besseren Weg, dies zu erreichen. – Neil

+0

Ich dachte, dass es eine bessere Lösung geben wird, aber diese ist akzeptabel. Vielen Dank! – ieaglle

Verwandte Themen