Многомерные массивы Java - PullRequest
0 голосов
/ 07 мая 2018

может кто-нибудь мне помочь? Я новичок в Java-программировании и не знаю, как сделать пузырьковую сортировку для многомерного массива. Я пытаюсь получить массив сортировки {{1, 8, 48, 55}, {75, 88, 98, 103}} Это мой код:

int[][] arr2 = {{98,8,103,55}, {88,48,75,1}};

    for (int i = 0; i < arr2.length; i++)
    {
        for (int j = 0; j < arr2[i].length; j++) 
        {
            for (int k = 0; k < arr2[i].length; k++)
            {
                for (int l = 0; l < arr2[j].length; l++)
                {
                    if(arr2[j][l] > arr2[j][l+1])
                    {
                        int tmp = arr2[j][l];
                        arr2[j][l] = arr2[j][l+1];
                        arr2[j][l+1] = tmp;
                    }
                }
            }
        }
    }

И я получил сообщение об ошибке «Исключение в потоке» main »java.lang.ArrayIndexOutOfBoundsException: 4"

1 Ответ

0 голосов
/ 07 мая 2018
for (int l = 0; l < arr2[j].length; l++)

l зацикливается до максимального индекса arr2 [j].

if(arr2[j][l] > arr2[j][l+1])

arr2[j][l] = arr2[j][l+1];

Последняя итерация ранее упомянутого цикла теперь гарантированно завершится сбоем, поскольку l + 1 автоматически выходит за пределы, поскольку вы не изменили его в цикле.

...