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

Сортировка матрицы по последнему элементу строки - C++

Восстановить пароль Регистрация
 
Votming
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 16
04.10.2013, 11:24     Сортировка матрицы по последнему элементу строки #1
Всем привет.
Задача: Нужно упорядочить строки матрицы в порядке возрастания их последних элементов. Вся программа почти готова, но функция сортировки у меня никак не работает. Вроде как эта функция, которую я написал ниже может сравнивать последние элементы массива, но я не могу написать алгоритм упорядочивания. Помогите, пожалуйста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void Sort(int col,int col2)
{
    int razm = 0;
    for (int k = 1; k < col; k++)
    {
        for (int i = col2-1; i < col2; i++)
        {
            for (int j =col2-1 ; j <col2; j++)
            {
                if (array[k][j] < array[k-1][j])
                {
                    // тут должна быть сортировка
                }
            }
        }   
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
04.10.2013, 13:56     Сортировка матрицы по последнему элементу строки #2
напиши мне на более тупом языке что значит "порядке возрастания их последних элементов" , а то у меня мозг не переваривает честно говоря)
HedgehogLu
 Аватар для HedgehogLu
146 / 67 / 1
Регистрация: 04.09.2013
Сообщений: 250
04.10.2013, 14:25     Сортировка матрицы по последнему элементу строки #3
Цитата Сообщение от Votming Посмотреть сообщение
for (int k = 1; k < col; k++) { for (int i = col2-1; i < col2; i++) { for (int j =col2-1 ; j <col2; j++) { if (array[k][j] < array[k-1][j]) { // тут должна быть сортировка } } } }
Боже зачем так сложно
Вам последующие циклы не нужны, т.к. они все одно возвращают последние элементы.

В принципе как сортировать не важно можно воспользоваться любым методом, поиска минимума или максимума и перестановка элементов, делением пополам или например пузырьковым методом сортировки.
Таким образом вам надо будет несколько вложенных циклов
1 перебор строк которых сравниваем (он уже у вас есть)
2 цикл выполняется до тех пор пока последний элемент анализируемой строки меньше (или больше в зависимости он направления сортировки) предыдущей и пока есть эта предыдущая строка. Обмениваем местами все элементы этих строк (3 цикл по столбцам например). И пытаемся опустить строку дальше
готово.

Добавлено через 2 минуты
Или можно покопать тут:Алгоритмы сортировок с кодом

(Да они для одномерных массивов. Но вы то и сравниваете элементы последнего столбца. Что и есть по сути одномерный массив.
Тока копировать придется не один элемент а всю строку)
Votming
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 16
04.10.2013, 16:49  [ТС]     Сортировка матрицы по последнему элементу строки #4
Цитата Сообщение от dzrkot Посмотреть сообщение
напиши мне на более тупом языке что значит "порядке возрастания их последних элементов" , а то у меня мозг не переваривает честно говоря)
Ну на сколько я понял, мы сравниваем последний элемент каждой строки матрицы(двумерного массива) и сортируем все строки в порядке возрастания этих элементов. Т.е.

массив
1 2 3 8
2 6 3 2 -> отстортируется вот так ->
4 3 2 5


2 6 3 2
4 3 2 5 т.к. 2<5<8
1 2 3 8
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
04.10.2013, 17:04     Сортировка матрицы по последнему элементу строки #5
Цитата Сообщение от Votming Посмотреть сообщение
Ну на сколько я понял, мы сравниваем последний элемент каждой строки матрицы(двумерного массива) и сортируем все строки в порядке возрастания этих элементов. Т.е.

массив
1 2 3 8
2 6 3 2 -> отстортируется вот так ->
4 3 2 5


2 6 3 2
4 3 2 5 т.к. 2<5<8
1 2 3 8
аа...так слушай это не трудно тогда) щас с работы ухожу, не успею написать)
HedgehogLu
 Аватар для HedgehogLu
146 / 67 / 1
Регистрация: 04.09.2013
Сообщений: 250
04.10.2013, 17:38     Сортировка матрицы по последнему элементу строки #6
Ну как успехи с кодом?
Читали раздел с сортировками?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2013, 20:40     Сортировка матрицы по последнему элементу строки
Еще ссылки по теме:

C++ Пузырьковая сортировка от первого шага к последнему
C++ Каждый элемент строки матрицы представить как приращение по отношению к минимальному элементу этой же строки
Получить массив B, присвоив его k-му элементу 1, если элементы k-й строки матрицы упорядочены по убыванию C++

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

Или воспользуйтесь поиском по форуму:
Votming
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 16
04.10.2013, 20:40  [ТС]     Сортировка матрицы по последнему элементу строки #7
Цитата Сообщение от HedgehogLu Посмотреть сообщение
Ну как успехи с кодом?
Читали раздел с сортировками?
Ну почитал, вроде бы понятно. Попробую завтра реализовать. Спасибо за советы!
Yandex
Объявления
04.10.2013, 20:40     Сортировка матрицы по последнему элементу строки
Ответ Создать тему
Опции темы

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