生成子集以及置换
来源:互联网 发布:python课程推荐 编辑:程序博客网 时间:2024/06/05 06:58
package 算法;import java.util.HashSet;import java.util.Iterator;import java.util.Set;import com.sun.corba.se.spi.ior.MakeImmutable;public class subSet {public static void main(String[] args) {Set<String> set = new HashSet<String>();set.add("A ");set.add("B ");set.add("C ");set.add("D ");set.add("E ");subSet make = new subSet();set = make.makeSubSet(set);//输出自己的信息Iterator< String> ite = set.iterator();int i = 0;while(ite.hasNext()){i++;System.out.println(i+"\t{"+ite.next()+"} ");}}//makeSubSet构造自己的set并返回public Set makeSubSet(Set set){//中间Set,由于set不能同时使用迭代器和直接在set上进行增加和删除操作,//所以,使用它来作为一个中转站Set res = new HashSet<String>();//为空的情况下直接空格,用于空子集if(set.isEmpty()){res.add(" ");return res;}//end if//其他情况else{//删除一个元素Iterator< String> ite = set.iterator();String content = ite.next();set.remove(content);set = makeSubSet(set);for(Object s: set){res.add( (String)s );}//在递归返回之后,根据返回的上一个子集的集合,生成子集Iterator< String > ite2 = res.iterator();String result;while(ite2.hasNext()){result = ite2.next();set.add(result+" "+content);}return set;}//end else}//end method makeSubSet}
package 算法;import java.util.Arrays;/* * 列出置换:给定一个数组列出所有的置换 * 递归 */public class ZhiHuan {public static void main(String[] args) {String [] str = {"A","B","C","E"};ZhiHuan zhihuan = new ZhiHuan();zhihuan.stat(str);}//置换算法public void zhiHuan(Object[] arr,int index ){if(index == arr.length -1){System.out.print(Arrays.toString(arr)+" ");}else{zhiHuan(arr, index+1);for(int i = index+1 ; i < arr.length; i++ ){//交换元素idex与后面的每一个元素Object temp = arr[index];arr[index] = arr[i];arr[i] = temp;zhiHuan(arr, index+1);}}}//驱动public void stat(Object[] arr){zhiHuan(arr, 0);}}
0 0
- 生成子集以及置换
- 生成子集
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 生成子集
- 生成子集
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 【leetcode】Longest Substring Without Repeating Characters
- hdu4915 判断括号匹配
- 汇编语言03——第一个汇编程序
- uva 10626 - Buying Coke
- Android视图绘制流程完全解析,带你一步步深入了解View(二)
- 生成子集以及置换
- CentOS 6.5系统中如何安装MySQL 5.6.10数据库和修改root密码
- 菜鸟译文(一)——Java中的继承和组合
- HLS入门收集(1)
- Linux 下编译安装 PHP 5.5
- discuz入门小结
- 给一个整数数组,有正有负。找出数组最大和,条件是使用的元素不能有相邻
- C++中namespace的使用
- 【bsgs】hdu4887