2012-04-07 57 views
1

我见过很多关于查找数组中指定元素位置的主题,但我无法将他们的解决方案应用于我的问题或找到合适的答案。查找数组中最小元素的位置

我有一个交错的数组:

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

,我需要得到最低元素的索引。

如果

_distance[2][5][0] 

是最小的,我需要得到 “2” 和 “5”

提前感谢!

回答

2

请尝试以下

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。根本没有效率,但如果这正是他所追求的,那么没有更好的方法来实现这一点。 – Neil 2012-04-07 18:24:06

+0

我认为会有一些更好的解决方案,但这个是可以接受的。谢谢! – ieaglle 2012-04-08 11:33:21

相关问题