как пузырьковую сортировку следующего кода в многомерный массив? - PullRequest
0 голосов
/ 31 мая 2018

Этот код содержит пузырьковую сортировку с массивом.В котором мне нужно использовать многомерный массив.

public class list {
    public static void main(String[] args) {
        {
            int temp;
            int a[] = { 0, 7, 4, 5, 6, 2, -1, 3 };
            for (int i = 0; i < a.length; i++) {
                for (int j = i; j < a.length; j++) {
                    if (a[i] < a[j]) {
                        temp = a[i];
                        a[i] = a[j];
                        a[j] = temp;
                    }

                }
                System.out.print(a[i] + ",");
            }

        }
    }
}


output:7,6,5,4,3,2,0,-1,

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Вам придется сортировать по одному измерению за раз, для нескольких измерений требуется несколько запусков.Поэтому создайте другой метод и передайте одно измерение за раз в метод сортировки.Это также зависит от бизнес-кейса.В любом случае, пузырьковая сортировка не может быть лучше, чем O (n2), в действительности это m O (n2) для массива m n 2-d.

Другая стратегия может быть,выровнять массив из нескольких измерений в одно измерение, а затем отсортировать одно измерение.

0 голосов
/ 31 мая 2018

Попробуйте это: Если вы хотите отсортировать 2D-массив в Java, то вы можете проверить этот пример.

class Sort2D
        {
            public static void main(String args[])throws IOException
            {
                BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

                System.out.print("Enter the no. of  rows: "); //inputting number of rows
                int m=Integer.parseInt(br.readLine());
                System.out.print("Enter the no. of columns: "); //inputting number of columns
                int n=Integer.parseInt(br.readLine());

                int A[][]=new int[m][n]; //creating a 2D array

                /* Inputting the 2D Array */

                for(int i=0;i<m;i++)
                {
                    for(int j=0;j<n;j++)
                    {
                        System.out.print("Enter the elements: ");
                        A[i][j]=Integer.parseInt(br.readLine());
                    }
                }        

                /* Printing the original 2D Array */

                System.out.println("The original array:");
                for(int i=0;i<m;i++)
                {
                    for(int j=0;j<n;j++)
                    {
                        System.out.print(A[i][j]+"\t");
                    }
                    System.out.println();
                }

                /* Sorting the 2D Array */

                int t=0;
                for(int x=0;x<m;x++)
                {
                    for(int y=0;y<n;y++)
                    {
                        for(int i=0;i<m;i++)
                        {
                            for(int j=0;j<n;j++)
                            {
                                if(A[i][j]>A[x][y])
                                {
                                    t=A[x][y];
                                    A[x][y]=A[i][j];
                                    A[i][j]=t;
                                }
                            }
                        }
                    }
                }

                /* Printing the sorted 2D Array */

                System.out.println("The Sorted Array:");
                for(int i=0;i<m;i++)
                {
                    for(int j=0;j<n;j++)
                    {
                        System.out.print(A[i][j]+"\t");
                    }
                    System.out.println();
                }
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...