Пользователь вводит значения матрицы, к примеру
5 6 8 9
7 4 5 1
8 5 6 12
Нужно переставить столбцы по увеличению значения последнего элемента столбца, то есть
6 8 5 9
4 5 7 1
5 6 8 12
Мне нужна хотя бы идея как это можно реализовать, а то в голову ничего не лезет
Мне нужна хотя бы идея как это можно реализовать, а то в голову ничего не лезет
даже примитивная selection-sort?
const int m = 3;
const int n = 4;
int a[3][4] = {{5, 6, 8, 9},
{7, 4, 5, 1},
{8, 5, 6, 12}};
void swap(int* a, int* b)
{
int c = *a;
*a = *b;
*b = c;
}
void mysort(int a[3][4], int m, int n)
{
for(int i = 0; i < n - 1; ++i)
{
int index = i;
for(int j = i + 1; j < n; ++j)
{
if(a[m - 1][j] < a[m - 1][index])
{
index = j;
}
}
for(int k = 0; k < m; ++k)
{
swap(&a[k][i], &a[k][index]);
}
}
}
Нужно переставить столбцы по увеличению значения последнего элемента столбца,
Roman, в ответе же написано: хранить матрицу по столбцам. С чем там могут быть сложности? С тем, чтобы сортируемыми элементами считать столбцы, а в функции сравнения сравнивать их последние элементы?