算法思路
nnnn使用递归,通过不断交换数组中的元素来生成不同的排列:
nnnn- n
- 从索引 s 开始,逐个将索引 s 和之后的索引 i 进行交换,形成新的排列。 nnnn
- 递归地对剩余的元素进行相同操作,即固定下一个位置的元素。 nnnn
- 当 s 达到数组的末尾时,即 s == len(arr),表示已经生成了一个完整的排列,将其打印出来。 nnnn
- 重复以上步骤,直到生成所有可能的排列。 n
这个算法通过递归和元素交换的方式,不断生成新的排列,直到生成了所有可能的排列为止。
nnnndef getTotalSort(arr, s):n if s != len(arr):n for i in range(s, len(arr)):n arr[s], arr[i] = arr[i], arr[s]n getTotalSort(arr, s + 1)n arr[s], arr[i] = arr[i], arr[s]n else:n print(arr)nnarr = [1, 2, 3, 4]ngetTotalSort(arr, 0)
n
Comments NOTHING