我使用Backtracking方法在c ++中编写骑士游览算法.但它似乎太慢或陷入无限循环n> 7(大于7乘7棋盘).
问题是:该算法的时间复杂度是多少?如何优化它?!
骑士之旅的问题可以说明如下:
给定一个有n×n方格的棋盘,找到一个骑士的路径,每个方格只访问一次.
这是我的代码:
#include <iostream>
#include <iomanip>
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 <= s - 1; i++)
for(j = 0; j <= s - 1; j++)
arr[i][j] = 0;
} …Run Code Online (Sandbox Code Playgroud) 我在我的数据库中有3条记录,我希望它们看起来像:如果我用于(每个)
<% @records.each do |record| %>
Run Code Online (Sandbox Code Playgroud)