Если у меня есть сетка 4x4, например, и я хочу начать с произвольной ячейки (i, j), а затем хочу пройти по каждому пути, не переходя на себя, какова сложность (большой o) этого?Я написал следующий код:
traverse(int[][]grid, int i, int j, boolean[][] visited){
for(int x = -1; x<=1; x++){
for(int y=-1; y<=1; y++){
if(inBounds(grid, i+x, j+y), !visited[i+x][j+y]){
traverse(grid, i+x, j+y, copyOfAndSet(visited, i+x, j+y));
}
}
}
}
Предположим, что inBounds существует, а copyOfAndSet существует и равен O (1) (не O (n * n)), поскольку я реализовал это с побитовыми операциями, но для ясности использовалмассив логических значений здесь.
Каково время выполнения алгоритма выше в сетке NxN.
Спасибо