Другие языки программирования и технологии

Теория алгоритмов. Алгоритмы сортировки.

Дан двумерный массив А(5,5). Необходимо поменять местами строки массива 0 с 4 и 1 с 3. Как это реализовать?
если массив аллоцирован динамически - достаточно поменять местами указатели А [0] и А [4], и А [1] с А [3]

Если массив аллоцирован статически - выбора нет - придется переписывать все элементы и первой строки в пятую и из второй в четвертую... .

Какое отношение имеет вопрос к алгоритмам сортировки?
Глеб Рыбакин
Глеб Рыбакин
783
Лучший ответ
Надо применить матрицу элементарных преобразований. Например, используя octave:

octave:1> a=[1 2 3 4 5;2 3 4 5 6;3 4 5 6 7;4 5 6 7 8;5 6 7 8 9]
a =

1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9

octave:2> b=[0 0 0 0 1;0 0 0 1 0;0 0 1 0 0;0 1 0 0 0;1 0 0 0 0]
b =

0 0 0 0 1
0 0 0 1 0
0 0 1 0 0
0 1 0 0 0
1 0 0 0 0

octave:3> a*b
ans =

5 4 3 2 1
6 5 4 3 2
7 6 5 4 3
8 7 6 5 4
9 8 7 6 5

octave:4> b*a
ans =

5 6 7 8 9
4 5 6 7 8
3 4 5 6 7
2 3 4 5 6
1 2 3 4 5

То есть, исходную матрицу (a) надо умножить слева на матрицу преобразований (b).
Юрий Беседин
Юрий Беседин
55 369