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

Пожалуйста, нужно отсортировать двумерный массив - C++

Восстановить пароль Регистрация
 
Votming
0 / 0 / 0
Регистрация: 22.09.2013
Сообщений: 16
08.10.2013, 13:54     Пожалуйста, нужно отсортировать двумерный массив #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) // col - кол-во строк, 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])
                {
                    // тут должна быть сортировка
                }
            }
        }   
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2013, 13:54     Пожалуйста, нужно отсортировать двумерный массив
Посмотрите здесь:

C++ нужно отсортировать массив
C++ Как отсортировать двумерный массив по возрастанию методом пузырька?
C++ Как отсортировать двумерный массив по сумме элементов в строке
Скажите пожалуйста как отсортировать массив C++
C++ создать и отсортировать двумерный массив по строкам используя алгоритм сортировки вставкой
Нужно отсортировать массив в порядке возрастания C++
C++ Отсортировать двумерный массив по столбцам
отсортировать двумерный массив по строкам без доп массивов C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alexdemath
 Аватар для Alexdemath
125 / 122 / 6
Регистрация: 11.04.2010
Сообщений: 253
08.10.2013, 16:22     Пожалуйста, нужно отсортировать двумерный массив #2
Например, можно немного подправить сортировку пузырьком. Пример

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
#include <iostream>
using namespace std;
 
int main()
{   
    setlocale(0,"");
 
    int A[5][10] = {{3, 8, 2, 7, 5, 2, 9, 1, 0, 1},
                    {2, 1, 6, 0, 5, 6, 8, 3, 3, 0},
                    {1, 2, 5, 2, 2, 1, 0, 7, 4, 9},
                    {1, 6, 1, 0, 2, 2, 5, 4, 5, 7},
                    {2, 2, 1, 9, 1, 2, 6, 9, 9, 4}};
    int const rows = 5, cols = 10;
 
    cout << "Матрица 5 на 10:" << "\n\n";
    for (int i = 0; i < rows; i++)
     { for (int j = 0; j < cols; j++) cout << "  " << A[i][j];
       cout << "\n";
     }
 
    for (int i = 0; i < rows-1; i++)         // Сортировка строк матрицы в порядке
     { for (int j = i+1; j < rows; j++)      //  возрастания их последних элементов
         { if (A[j][cols-1] < A[i][cols-1])
            { int T[cols] = {};
              for (int k = 0; k < cols; k++) 
               { T[k] = A[j][k];
                 A[j][k] = A[i][k];
                 A[i][k] = T[k];
               }
            }
         }
     }
 
    cout << "\nОтсортированная матрица в порядке возрастания\n";
    cout << "последних элементов строк: \n\n";
    for (int i = 0; i < rows; i++)
     { for (int j = 0; j < cols; j++) cout << "  " << A[i][j];
       cout << "\n";
     }
 
    cout << endl;
    system("pause");
    return 0;
}
Yandex
Объявления
08.10.2013, 16:22     Пожалуйста, нужно отсортировать двумерный массив
Ответ Создать тему
Опции темы

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