Algorithm NQueens (k, n) //Prints all Solution to the n-queens problem
{
for i := 1 to n do
{
if Place (k, i) then
{
x[k] := i;
if (k = n) then write (x [1 : n]
else NQueens (k+1, n);
}
}
}
Algorithm Place (k, i)
{
for j := 1 to k-1 do
if ((x[ j ] = // in the same column
or (Abs(x [ j ] - i) =Abs (j – k))) // or in the same diagonal
then return false;
return true;
}
Приведенный выше код для решения задачи N ферзей с помощью backtracking.I думаю, что это может поставить первые 2 маток двух строк в соответствующих столбцах, а затем, когда дело доходит до 3-го ряда королевы она может» т. е. ни одна королева не должна атаковать, и она просто выйдет из фермы алгоритмов N ... Итак, как этот алгоритм реализует обратное отслеживание?Алгоритм N королев
эта сложность O_o – Fabinout