全排列
全排列就是将一串数字排列组合 列出所有的情况,分成有重复的和无重复的,一般来说没有重复数字的比有重复数字的更难的一些,不过大体思路都差不多,都需要用到回溯算法
整体思路:
1.就是把数字一个一个遍历,发现符合条件就加进去,不符合条件的就跳出去,那么这个容器就用ArrayList的形式
那么代码就是:·
public class number{
static ArrayList<String> w = new ArrayList();//符合条件的一组,就往里面装,装的是String类型
static List M = Arrays.asList(1,3,2,5);//待排序的一串数字
/*selected是符合条件就往里面装的暂时容器,choose是含有的排列数字*/
public static void run(List <Integer> selected,List <Integer> choose) {
}
}
2.准备好装东西的容器之后,就是要考虑函数的退出条件,也就是当selected里面的元素多到和待排序的数字一样长的时候,就退出函数
代码这样:
public class number{
static ArrayList<String> w = new ArrayList();
static List M = Arrays.asList(1,3,2,5)