Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何循环所有路径中的所有节点?_Arrays_Algorithm_Loops_Recursion_Nodes - Fatal编程技术网

Arrays 如何循环所有路径中的所有节点?

Arrays 如何循环所有路径中的所有节点?,arrays,algorithm,loops,recursion,nodes,Arrays,Algorithm,Loops,Recursion,Nodes,我有一个数组,它有4个成员,我需要尝试所有循环组合,如 0 -> 1 -> 3 -> 2 0 -> 1 -> 2 -> 3 0 -> 2 -> 1 -> 3 0 -> 2 -> 3 -> 1 0 -> 3 -> 2 -> 1 0 -> 3 -> 1 -> 2 这将导致6个不同的结果,然后我会比较这些结果,并找到最好的一个。我浪费了很多时间去做那个递归循环,但我做不到 您可以使用一些蛮力算

我有一个数组,它有4个成员,我需要尝试所有循环组合,如

0 -> 1 -> 3 -> 2
0 -> 1 -> 2 -> 3
0 -> 2 -> 1 -> 3
0 -> 2 -> 3 -> 1
0 -> 3 -> 2 -> 1
0 -> 3 -> 1 -> 2

这将导致6个不同的结果,然后我会比较这些结果,并找到最好的一个。我浪费了很多时间去做那个递归循环,但我做不到

您可以使用一些蛮力算法找到所有路径。但是蛮力算法速度慢,需要花费很多时间。您可以使用动态编程来代替暴力,动态编程可以提高速度和次数。旅行推销员与您的问题不同,但它给出了主要的想法。

使用DFS访问图中的节点,如下所示:

DFS(i,path) {

  visited[i] = true
  neighbours = cal_neighbours(i)
  has_valid_neighbour = false
  for n in neighbours {
     if(!visited[n]) {
         DFS(n,path+"->"+n)
         has_valid_neighbour = true
     }
  }
  if(!has_valid_neighbour) {
     print(path)      
  }
  visited[i] = false
}

调用:DFS(0,0”)

我不确定你所说的循环是什么意思,但你所说的“所有路径”通常被称为“排列”。尝试用那个关键词搜索,有很多相关的问题。