1

この質問は次の質問に続きます: How to sort a 2D Matrix

前の質問で、OP は行や列などの行列を並べ替える方法を尋ねていました (M[i][j] <= M[i+1][j] および M[i][j] <= M [i][j+1])。私の答えは簡単でした:行がソートされ、列もソートされるように、1D配列のようにソートします。そして、解決策はそれだけではないことに気付きました。

私の質問は次のとおりです。この問題のすべての解決策を提供できるアルゴリズムは何ですか? 明らかな解決策はバックトラッキング アルゴリズムですが、もっとうまくやれると確信しています...

同じアレイのソリューションの例:

0 0 1 2 
2 2 3 3 
3 5 5 6 
6 6 6 6 
7 7 9 9 

と:

0 2 3 6
0 2 5 6
1 3 5 6
2 3 6 6
7 7 9 9

と:

0 2 3 6
0 2 5 6
1 3 5 7
2 3 6 7
6 6 9 9

と:

0 2 3 6
0 2 5 6
1 3 5 7
2 3 6 9
6 6 7 9

等...

4

2 に答える 2