Форум программистов, компьютерный форум CyberForum.ru

Сортировка столбцов матрицы по убыванию - C++

Восстановить пароль Регистрация
 
Nawriz
0 / 0 / 0
Регистрация: 10.07.2015
Сообщений: 31
07.09.2015, 10:26     Сортировка столбцов матрицы по убыванию #1
дана матрица размером NxM надо отсортировать элементы столбцы в порядке убывание. Ввод данных с клавиатуры.
ввод данных
4 2
86 -18
54 96
60 -15
43 20

Вывод данных

86 96
60 20
54 -15
43 -18
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2015, 10:26     Сортировка столбцов матрицы по убыванию
Посмотрите здесь:

C++ сортировка столбцов матрицы
Сортировка матрицы по убыванию C++
сортировка столбцов матрицы C++
Сортировка элементов строк матрицы по убыванию C++
Сортировка матрицы по убыванию C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,155
Завершенные тесты: 1
07.09.2015, 10:31     Сортировка столбцов матрицы по убыванию #2
Алгоритмы сортировок
Сортируете отдельно по каждому столбцу (т.е. делаете сортировку столько раз, сколько есть столбцов, удерживая неизменным номер столбца при каждой сортировке).
ture
 Аватар для ture
404 / 297 / 120
Регистрация: 27.11.2014
Сообщений: 1,004
07.09.2015, 10:46     Сортировка столбцов матрицы по убыванию #3
C++
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
#include <iostream>      
#include <ctime>      
     
void sort(short**,int, int, int);
 
int main() {
 
    int n, m;
    (std::cin >> n >> m).get();
            
    short ** M = new short*[n];
    srand(time(0));
    for(int i = 0; i < n; ++i) {
        M[i] = new short[m];
        for(int j = 0; j < m; ++j)
            std::cout << (M[i][j] = rand()%100) << '\t';
        std::cout << std::endl;
    }
 
    std::cout << std::endl;
    for(int j = 0; j < m; ++j)
        sort(M,j,0,n-1);
 
    for(int i = 0; i < n; ++i) {
        for(int j = 0; j < m; ++j)
            std::cout << M[i][j] << '\t';
        std::cout << std::endl;
        delete[] M[i];
    }
    delete[] M;
 
    std::cin.get();
    return 0;
}
void sort(short ** m, int col, int a, int b) {
    short avg = m[b][col];
    int i = a, j = b;
 
    do {
        while(m[i][col] > avg) i++;
        while(m[j][col] < avg) j--;
 
        if(i <= j) {
            if(m[i][col] != m[j][col]) {
                short t = m[i][col];
                m[i][col] = m[j][col];
                m[j][col] = t;
            }
            i++;
            j--;
        }
 
    } while(i <= j);
 
    if(i<b)
        sort(m, col, i, b);
    if(j>a)
        sort(m, col, a, j);
 
}
Nawriz
0 / 0 / 0
Регистрация: 10.07.2015
Сообщений: 31
07.09.2015, 18:08  [ТС]     Сортировка столбцов матрицы по убыванию #4
ture, немного не понятно мне
Yandex
Объявления
07.09.2015, 18:08     Сортировка столбцов матрицы по убыванию
Ответ Создать тему
Опции темы

Текущее время: 08:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru