Как оптимизировать алгоритм тура Найта?

Я кодируюKnight»тур Алгоритм в C ++ с использованиемОткат метод. Но это кажется слишком медленным или застрявшим в бесконечном цикле для n> 7 (больше чем 7 на 7 шахматной доске).

Вопрос в том, чтоСложность времени для этого алгоритма и как я могу его оптимизировать ?!

Рыцарь'Задача тура может быть сформулирована следующим образом:

Дана шахматная доска с n × n квадратов, найдите путь для рыцаря, который посещает каждый квадрат ровно один раз.

Вот мой код:

#include 
#include 
using namespace std;

int counter = 1;
class horse
{
public:
  horse(int);
  bool backtrack(int, int);
  void print();
private:
  int size;
  int arr[8][8];
  void mark(int &);
  void unmark(int &);
  bool unvisited(int &);
};

horse::horse(int s)
{
  int i, j;
  size = s;
  for(i = 0; i 

Ответы на вопрос(3)

Ваш ответ на вопрос