Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 04.05.2019
Сообщений: 11

Сортировка столбцов массива

20.02.2020, 17:46. Показов 3430. Ответов 12
Метки java (Все метки)

Студворк — интернет-сервис помощи студентам
Объявите двумерный целочисленный массив, в котором n строк по m элементов. Выпол-ните генерацию массива случайными целыми числами из промежутка [a; b). Значения n ,m, a, b вводятся с клавиатуры. Переставьте столбцы массива так, чтобы их максимальные элементы образовали возрастающую последовательность. Выведите массив на экран в ви-де таблицы дважды – до и после перестановки.

Сделал все кроме перестановки столбцов, подскажите кто знает

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package com.company;
 
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] args) {
 
    List<List<Integer>> matrix = new ArrayList<List<Integer>>();
 
        Scanner input = new Scanner(System.in);
 
 
        System.out.println("Введите количество строк n:");
        int n = input.nextInt();
 
        System.out.println("Введите количество строк m:");
        int m = input.nextInt();
 
        int a,b;
        System.out.println("Введите промежуток чисел от a  до b:");
 
        a = input.nextInt();
        b = input.nextInt();
 
        int[] max = new int[n];
 
        for(int i = 0;i < n; i++)
        {
            List<Integer> list = new ArrayList<Integer>();;
            matrix.add( list );
            for(int j = 0;j < m; j++)
             {
                list.add(((int)(Math.random() * ((b-a)+1)+a)));
             }
 
 
        }
        System.out.println(matrix);
 
        for(int i = 0;i < n; i++)
        {
            int max1 = -999999;
            for(int j = 0;j < m; j++)
            {
              if((matrix.get(j).get(i) > max1))
              {
               max[i] = matrix.get(j).get(i);
               max1 = matrix.get(j).get(i);
              }
 
            }
 
        }
 
 
 
 
        
    }
 
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.02.2020, 17:46
Ответы с готовыми решениями:

Сортировка массива. Ошибка вывода отсортированного массива
Задание: В произвольной матрице отсортировать по убыванию элементы последовательности, расположенные после второго отрицательного числа. ...

Вычислить номер первого из столбцов массива, не содержащего отрицательных элементов
Для целочисленного ДВУХМЕРНОГО массива размерности NxM вычислить номер первого из столбцов, не содержащих ни одного отрицательного...

Сортировка столбцов массива по убыванию элементов столбцов
Заполнить двумерный числовой массив A целыми числами. Вычислить сумму элементов каждого столбца массива. Упорядочить столбцы массива по...

12
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
20.02.2020, 17:54
1) написать метод для нахождения максимального элемента в столбце
2) написать метод перестановки двух столбцов
3) написать банальную сортировку пузырьком
0
0 / 0 / 0
Регистрация: 04.05.2019
Сообщений: 11
20.02.2020, 17:57  [ТС]
такой план я сам могу составить, как-то конкретнее можно? как именно их там переставить и т.д.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
20.02.2020, 18:03
переставить первый элемент i столбца и первый элемент j столбца
переставить второй элемент i столбца и второй элемент j столбца
....
PROFIT
0
0 / 0 / 0
Регистрация: 04.05.2019
Сообщений: 11
20.02.2020, 18:18  [ТС]
ок, гений, как переставить ВСЕ столбцы так, чтобы они образовывали возрастающую последовательность? Давай только без ответа типа "Найти максимальные элементы всех столбцов и столбец у которого минимальное такое число поставить на первое место и т.д."
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
20.02.2020, 18:45
я что не по-русски говорю? сортировка пузырьком
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
20.02.2020, 19:36
yaprog, что-типа этого и имел в ввиду уважаемый xoraxax:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package ru.ismokejc;
 
import java.util.Scanner;
import java.util.concurrent.ThreadLocalRandom;
 
public class Cyber {
    private int[][] matrix;
 
    public static void main(String[] args) {
        new Cyber().foo();
    }
 
    public void foo() {
        Scanner input = new Scanner(System.in);
 
        System.out.print("Введите количество строк: ");
        int n = input.nextInt();
 
        System.out.print("Введите количество солбцов: ");
        int m = input.nextInt();
 
        System.out.println("Введите промежуток чисел от a  до b: ");
        int a = input.nextInt();
        int b = input.nextInt();
 
        createAndFillRandomMatrix(n, m, a, b);
        showMatrix("***** Source matrix *****");
        bubbleSort();
        showMatrix("***** Sorted matrix *****");
    }
 
    private void bubbleSort() {
        boolean change = true;
        while (change) {
            change = false;
            for (int i = 0; i < matrix[0].length - 1; i++) {
                if (getMaxOfColumn(i) > getMaxOfColumn(i + 1)) {
                    swapColumns(i, i + 1);
                    change = true;
                }
            }
        }
    }
 
    private void showMatrix(String message) {
        System.out.println(message);
        for (int[] row : matrix) {
            for (int elem : row) {
                System.out.print(elem + "\t");
            }
            System.out.println();
        }
        System.out.println("----------------------------------------------\n");
    }
 
    private void createAndFillRandomMatrix(int rows, int cols, int start, int end) {
        matrix = new int[rows][cols];
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++) {
                matrix[i][j] = ThreadLocalRandom.current().nextInt(start, end);
            }
        }
    }
 
    private void swapColumns(int a, int b) {
        int temp;
        for (int i = 0; i < matrix.length; i++) {
            temp = matrix[i][a];
            matrix[i][a] = matrix[i][b];
            matrix[i][b] = temp;
        }
 
    }
 
    private int getMaxOfColumn(int col) {
        int max = Integer.MIN_VALUE;
        for (int[] row : matrix) {
            if (row[col] > max) {
                max = row[col];
            }
        }
        return max;
    }
 
}
2
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,304
21.02.2020, 01:45
yaprog,

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import java.util.concurrent.ThreadLocalRandom;
 
public class Start {
    static int rows = 5;
    static int cols = 7;        
    static int[][] array = new int[cols][rows];
    static int[] max = new int[cols];
    
    public static void main(final String[] args) {      
        int rMin = 10;
        int rMax = 200;
        
        for (int i = 0; i < cols; i++) {            
            for (int j = 0; j < rows; j++) {
                array[i][j] = ThreadLocalRandom.current().nextInt(rMin, rMax);              
                
                if (array[i][j] > max[i]) {
                    max[i] = array[i][j];
                }               
            }           
        }
        
        printArray();
        
        System.out.println(">----------------------------------------------< Max Values");
        
        for (int i : max) {
            System.out.printf("%3d  ", i);
        }
        
        System.out.println();
        
        boolean toSort = true;
        
        while (toSort) {
            toSort = false;
            
            for (int i = 1; i < max.length; i++) {
                if (max[i - 1] > max[i]) {
                    toSort = true;
                    
                    int tmp = max[i - 1];
                    max[i - 1] = max[i];
                    max[i] = tmp;
                    
                    int[] tmpCol = array[i - 1];
                    array[i - 1] = array[i];
                    array[i] = tmpCol;
                }
            }
        }   
        
        System.out.println("----------------------------------------------<  Sort Max");
        
        for (int i : max) {
            System.out.printf("%3d  ", i);
        }
        
        System.out.println("\n----------------------------------------------<  Sort Array");
        
        printArray();
    }
    
    private static void printArray(){
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++) {
                String tag = " ";
                
                if (array[j][i] == max[j]) {
                    tag = "*";
                }               
                
                System.out.printf("%3d%s ", array[j][i], tag);                  
            }       
            System.out.println();
        }
    }
}
1
20 / 16 / 6
Регистрация: 15.02.2020
Сообщений: 78
21.02.2020, 14:13
xoraxax, Ты, с твоей репой, до сих пор надеешься что люди сюда приходят за советом, а не за готовым кодом? Да ты оптимист
0
296 / 149 / 67
Регистрация: 22.02.2017
Сообщений: 592
21.02.2020, 14:41
Aksters, Просто xoraxax надеется что народ учиться начнет, ну или думать немногим больше чем клянчить решение задачи. Отсюда вопрос а зачем эти люди учатся если по факту они сами ничего не умеют и не хотят, как они дальше работать будут если знаний нет, что это за специалисты тогда ? Часто смотрю этот раздел и он состоит только из сообщений как создать массив Х в рамках какой то учебной программы, причем те кто спрашивают просто перебивают задание.
0
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,304
21.02.2020, 15:03

Не по теме:

Цитата Сообщение от Nidl Посмотреть сообщение
факту они сами ничего не умеют и не хотят, как они дальше работать будут
ИМХО они и не собираются. Это отголоски 90-ых - главное диплом есть. Вообще, в принципе многие не знают (и это наверное всегда так было, есть и будет), почему поступили туда-то или туда-то т.к. выбирать что-то надо, время ж не терпит.
Но проблема в том, что в том возрасте, в котором как принято надо делать этот выбор, вряд ли вообще можно адекватно сделать один из решающих выборов твоей жизни - выбрать профессию (начиная от всё более продолжительной инфантильности молодых поколений, и кончая доминированием не разума о гормонов).


0
 Аватар для Aviz__
2736 / 2046 / 506
Регистрация: 17.02.2014
Сообщений: 9,462
21.02.2020, 15:05
Цитата Сообщение от Aksters Посмотреть сообщение
за готовым кодом?
приходят явно не нормальные люди((. адекватные же, приходят обсудить свои подходы к решениям, братец!
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
21.02.2020, 15:47
Aksters, как ни странно попадаются вменяемые персонажи, редко, но бывает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.02.2020, 15:47
Помогаю со студенческими работами здесь

Сортировка столбцов массива float
Всем привет! Помогите пожалуйста с заданием. У меня есть двухмерный массив float, нужно сделать так, что бы столбцы выстроились в порядке...

Сортировка строк и столбцов массива
Люди добрые, кто чем может) Нужно написать не свап строк, а сортировку строк по первым элементам. ну и аналогично сортировку столбцов...

Сортировка элементов столбцов двумерного массива
у меня сортировка элементов строка двумерного массива получается, но сортировка элементов столбцов двумерного массива не получается. ...

Сортировка по элементам столбцов двумерного массива
Помогите решить задачу : Даны три матрицы целого типа произвольной размерности (размерность вводится пользователем). Для каждой матрицы...

Сортировка выбором столбцов двумерного массива
Здравствуйте! Перечитал на форуме все что только смог найти связанное с сортировкой выбором. Проблема заключается в том что в основном все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru