私は2次元マトリックスを持っており、最大値から最小値までの値を表示しようとしています。私は基本的に常に最大値を探すことでこれを行い、見つけたら1
をadjacencyMatrix
に設定して、それを再びカウントしません。問題は、私が最初に出力したコードをテストし、最大のものを印刷してから2番目に大きいものをスキップしたときです。 3番目と4番目に大きな発見。もう少しスキップして、最後に0を印刷し始めました。私はしばらくの間、それを見つめてきたので、私も目の別のペアが役立つかもしれないバグを見つけることができません2D配列の値を降順で印刷するにはどうすればよいですか?
public static void findLongestPath(int rows, int columns, int[][] elevationMatrix, int[][] adjacencyMatrix)
{
int max = 0;
for (int x = 0; x < rows * columns; x++)
{
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < columns; j++)
{
if (elevationMatrix[i][j] > max && adjacencyMatrix[i][j] == 0)
{
max = elevationMatrix[i][j];
adjacencyMatrix[i][j] = 1;
}
}
}
System.out.println(max);
max = 0;
}
}
:
は、ここに私のコードです。
P.S.私はそれをすることができないので、配列を並べ替えるよう教えてください。元の配列の順序を維持する必要があります。
元の配列の1次元、サイズ 'rows * columns'をコピーしてソートします。 –
@LouisWasserman私はそのポジションを失うだろう。これは大きなプログラムの一部であり、私は各価値の場所を知る必要があります。 –
次に、位置と値を格納する 'Comparable'を実装するクラスを作成し、それらをソートします。 –