设计一个回溯算法来生成数字1,2,…,n的所有排列
时间: 2024-03-21 19:34:47 浏览: 44
以下是使用回溯算法来生成数字1,2,…,n的所有排列的示例代码:
```python
def backtrack(nums, path, res):
# 如果路径中的数字个数等于n,说明已经找到了一个排列
if len(path) == len(nums):
res.append(path[:])
return
# 遍历所有的数字
for num in nums:
# 如果数字已经在路径中,跳过
if num in path:
continue
# 添加数字到路径中
path.append(num)
# 继续搜索下一个数字
backtrack(nums, path, res)
# 回溯,将数字从路径中移除
path.pop()
def generatePermutations(n):
nums = list(range(1, n+1))
res = []
backtrack(nums, [], res)
return res
n = 3
permutations = generatePermutations(n)
for permutation in permutations:
print(permutation)
```
输出结果为:
```
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)