java使用递归解决全排列问题

来源:互联网 发布:国家地理基础数据库 编辑:程序博客网 时间:2024/06/02 07:29
import java.util.Arrays;import java.util.HashSet;import java.util.LinkedList;import java.util.List;/* * 字符串全排列问题递归解决 */public class Test7_1 {public static void main(String[] args) {String[] array={"1","2","3","4"};  //定义一个字符数组HashSet<String> list=new HashSet<String>(); //定义一个set存放排列后的字符串listAll(Arrays.asList(array),"",list);   //递归解决问题for(String s:list){System.out.print(s+" ");}}public static void listAll(List<String> candidate,String prefix,HashSet<String> list){if(candidate.isEmpty()){list.add(prefix);}for(int i=0;i<candidate.size();++i){List<String> temp=new LinkedList<String>(candidate);listAll(temp,prefix+temp.remove(i),list);}}}

原创粉丝点击