Я пытаюсь настроить метод, который будет сортировать двумерный массив удвоений по столбцу. Исходя из предоставленных спецификаций, этот метод также не должен принимать рваные массивы с рядами неравных длин. Я тестирование это с помощью двойной [] [] mdarray = {{3,0, 4,0, 1,0, 8,0}, {13,0, 2,0, 12,0, 9,0}Java: Сортировка 2D-массива по столбцам без массивов .sort()
Используя метод печати, это должно отображаться как
3,0, 2,0, 1,0, 8,0,
13,0, 4,0, 12,0, 9,0,
При использовании отдельного метода печати для вывода результата, массив, как представляется, без изменений. Я думаю, что моя проблема заключается в том, как проверить каждую строку для данного столбца, прежде чем перейти к следующему, но я не уверен, как это сделать без метода Arrays.sort(), который не допускается для этого упражнения.
public void sort(boolean byColumn)
{
if(isRagged() == true)
{
System.out.println("Ragged arrays cannot be sorted by column.");
}
else
{
for(int i = 0; i < mdarray.length; i++)
{
for(int j = i + 1; j < mdarray.length - 1; j ++)
{
for(int k = 0; k < mdarray[i].length; k++)
{
if(mdarray[i][k] > mdarray[j][k])
{
double temp = mdarray[i][k];
mdarray[i][k] = mdarray[j][k];
mdarray[i][k] = temp;
}
}
}
}
}
}
'mdarray [i] [k] = temp;' должно быть 'mdarray [i] [j] = temp;' – shmosel
Я просто попробовал это. Выходные данные все те же. –
@shmosel, вероятно, вы подразумевали, что это должно быть 'mdarray [j] [k] = temp' – radoh