1. 全排列
使用回溯,深度优先算法
2. 下一个排列
找到a[i-1]<a[i]的,再在i-1右边找到大于a[i-1]的最小值a[j],将a[j]与a[i-1]替换,再把后面从小到大排序
3. 第k个排序
比如123的第3个排序
0 1 2 3 除以(n-1)! 0
1 1 3 2 除以(n-1)! 0
2 2 1 3 除以(n-1)! 1
3 2 3 1 除以(n-1)! 1
4 3 1 2 除以(n-1)! 2
5 3 2 1 除以(n-1)! 2
1. 全排列
使用回溯,深度优先算法
2. 下一个排列
找到a[i-1]<a[i]的,再在i-1右边找到大于a[i-1]的最小值a[j],将a[j]与a[i-1]替换,再把后面从小到大排序
3. 第k个排序
比如123的第3个排序
0 1 2 3 除以(n-1)! 0
1 1 3 2 除以(n-1)! 0
2 2 1 3 除以(n-1)! 1
3 2 3 1 除以(n-1)! 1
4 3 1 2 除以(n-1)! 2
5 3 2 1 除以(n-1)! 2