全排列是指给定一个有限集合,对其中的元素进行一定顺序的排列,使得任意两个排列不相同。全排列的计算可以通过递归的方式实现。
下面是一个用 Python 语言计算全排列的示例代码:
def permute(nums):
result = []
def backtrack(start):
if start == len(nums):
result.append(nums[:])
else:
for i in range(start, len(nums)):
nums[start], nums[i] = nums[i], nums[start]
backtrack(start + 1)
nums[start], nums[i] = nums[i], nums[start] # 回溯
backtrack(0)
return result
你可以调用这个函数来计算一个数组的全排列。比如,对于数组 [1, 2, 3]
,调用 permute([1, 2, 3])
,将会返回一个包含所有排列的二维数组 [[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 2, 1], [3, 1, 2]]
。
同样的算法也可以用其他编程语言来实现。