回溯法-求全排列
来源:互联网 发布:ubuntu 16.04 arm gcc 编辑:程序博客网 时间:2024/05/23 01:26
回溯法入门,求一个集合的全排列,比如{2,3,5}的全排列为:[[2, 3, 5], [2, 5, 3], [3, 2, 5], [3, 5, 2], [5, 3, 2], [5, 2, 3]]
代码如下:
public class AllPermutations {public void allPermutations(List<List<Integer>> lists, Integer[] a, int cur) {if (cur == a.length) {lists.add(new ArrayList<>(Arrays.asList(a)));} else {for (int i = cur; i < a.length; i++) {swap(a, cur, i);allPermutations(lists, a, cur+1);swap(a, cur, i);}}}public void swap(Integer[] a, int i, int j) {if (i == j) {return;}a[i] ^= a[j];a[j] ^= a[i];a[i] ^= a[j];}public static void main(String[] args) {AllPermutations ap = new AllPermutations();Integer[] a = {2, 3, 5};List<List<Integer>> lists = new ArrayList<>();ap.allPermutations(lists, a, 0);System.out.println(lists);System.out.println(lists.size());}
0 0
- 回溯法求全排列
- 回溯法-求全排列
- Java回溯法求全排列
- 回溯法之求全排列
- 【算法】求全排列 回溯 交换 DFS JAVA
- 最简回溯法求全排列-递归形式 快速领悟回溯法窍门
- 递归法求全排列
- 分治法求全排列
- 回溯法求全排列-非递归形式-代码还没优化过
- 递归法求全排列-java
- 求全排列
- 求全排列
- 求全排列
- 求全排列
- 求全排列
- 求全排列
- 求全排列
- 求全排列
- JAVA UUID 生成
- 【android程序之聊天程序】
- weixin微信公众号一站到底游戏代码(有点普通)
- 【Android入门 十一】SQLite的简单使用
- C#中的委托和事件(续)
- 回溯法-求全排列
- SEAndroid安全机制简要介绍和学习计划
- 链接错误-库冲突(libcmt.lib和libcmtd.lib)
- ORACLE 的 select (一)
- Windows Power Shell (一个强大的类Linux命令器)
- SEAndroid安全机制中的文件安全上下文关联分析
- C++设计模式13----Flyweight享元模式
- hdu 3565 Bi-peak Number 数位dp
- iOS 之通过反射机制获得变量名