[JAVA] ДАНА ВЕЩЕСТВЕННАЯ МАТРИЦА РАЗМЕРОМ 10Х40. УПОРЯДОЧИТЬ ЕЕ СТРОКИ ПО УБЫВАНИЮ

[JAVA] ДАНА ВЕЩЕСТВЕННАЯ МАТРИЦА РАЗМЕРОМ 10Х40. УПОРЯДОЧИТЬ ЕЕ Строчки ПО УБЫВАНИЮ СУММЫ ИХ Частей

Задать свой вопрос
1 ответ

public class MyClass

   public static void main(String args[])

       

       int dimention1 = 10;

       int dimention2 = 5;//40

       

       double[][] matrix = new double[dimention1][dimention2];

       

       fill(matrix);

       print(matrix);

       matrix = sort(matrix, getOrder(matrix));

       print(matrix);

   

   

   

   private static double[][] sort(double[][]matrix, int[] order)

   

       double[][] ret = new double[matrix.length][matrix[0].length];

       

       for (int i=0;ilt;matrix.length;i++ )

       

           for (int j=0;jlt;matrix[i].length;j++ )

           

               ret[i][j] = matrix[order[i]][j];

           

       

       return ret;

   

   

   private static void fill(double[][] matrix)

   

       for (int i=0;ilt;matrix.length;i++ )

       

           for (int j=0;jlt;matrix[i].length;j++ )

           

               matrix[i][j] = Math.random()*10;

           

       

   

   

   private static int[] getOrder(double[][] matrix)

   

       double[] sums = new double[matrix.length];

       for (int i=0;ilt;matrix.length;i++ )

       

           for (int j=0;jlt;matrix[i].length;j++ )

           

               sums[i]+=matrix[i][j];

           

       

       

       int[] order = new int[sums.length];

       for (int i=0;ilt;sums.length;i++ )

       

           order[i] = i;

       

       

       for (int i=0;ilt;sums.length;i++ )

       

           for (int j=i+1;jlt;sums.length;j++ )

           

               if(sums[i]lt;sums[j])

               

                   double tmp1 = sums[i];

                   int tmp2 = order[i];

                   sums[i] = sums[j];

                   order[i] = order[j];

                   sums[j] = tmp1;

                   order[j] = tmp2;

               

               

           

       

       return order;

   

   

   private static void print(double[][] matrix )

   

       for (int i=0;ilt;matrix.length;i++ )

       

           double sum = 0.0;

           for (int j=0;jlt;matrix[i].length;j++ )

           

                System.out.print(matrix[i][j]+" ");

                sum+=matrix[i][j];

           

           System.out.println(" sum: "+sum);

       

       System.out.println();

   


, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт