Наталья Пахомова
Наталья Пахомова

Дан двухмерный массив из нолей и единиц, найти алгоритм всех перестановок?

Aнюта

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

#include
#include

using namespace std;

int main() {
int a[2][2] = { { 0, 1 }, { 1, 0 } };
int sz = sizeof(a) / sizeof(a[0][0]);

sort(&a[0][0], &a[0][0] + sz);

do {
for (int r = 0; r < 2; ++r) {
for (int c = 0; c < 2; ++c) cout << ' ' << a[r][c];
cout << endl;
}
cout << endl;
} while ( next_permutation(&a[0][0], &a[0][0] + sz) );

return 0;
}



Реализацию алгоритма перестановок можешь подсмотреть в функции next_permutation стандартной библиотеки шаблонов, если конечно сможешь разобраться.

Похожие вопросы
Циклический алгоритм Дано 5 чисел. Найти сумму положительных чисел
Какой сложности двухмерный массив всех перестановок?
Что не так? С++ Двухмерные массивы
Как вводится матрица (двухмерный массив) на языке Pascal ?
Паскаль. Дан двухмерный массив, надо найти максимальный элемент в каждой строчке, и вывести их.
Какой алгоритм решения данной задачи лучше использовать?
как перевести двухмерный массив в одномерный на Паскале? ? помогите. я пыталась и ничего не получается.
pascal abs. как вывести двухмерный массив нормально а не в столбик или строку
Нужно найти алгоритм!!!
Логический ноль и логическая единица?