笛卡儿积的Java算法实现
来源:互联网 发布:如何解析json数据 编辑:程序博客网 时间:2024/05/24 01:26
本文转载于:http://xiemingmei.iteye.com/blog/1484587
笛卡尔积算法的Java实现:
(1)循环内,每次只有一列向下移一个单元格,就是CounterIndex指向的那列。
(2)如果该列到尾部了,则这列index重置为0,而CounterIndex则指向前一列,相当于进位,把前列的index加一。
(3)最后,由生成的行数来控制退出循环。
1.public class Test { 2. 3. private static String[] aa = { "aa1", "aa2" }; 4. private static String[] bb = { "bb1", "bb2", "bb3" }; 5. private static String[] cc = { "cc1", "cc2", "cc3", "cc4" }; 6. private static String[][] xyz = { aa, bb, cc }; 7. private static int counterIndex = xyz.length - 1; 8. private static int[] counter = { 0, 0, 0 }; 9. 10. public static void main(String[] args) throws Exception { 11. 12. for (int i = 0; i < aa.length * bb.length * cc.length; i++) { 13. System.out.print(aa[counter[0]]); 14. System.out.print("\t"); 15. System.out.print(bb[counter[1]]); 16. System.out.print("\t"); 17. System.out.print(cc[counter[2]]); 18. System.out.println(); 19. 20. handle(); 21. } 22. } 23. 24. public static void handle() { 25. counter[counterIndex]++; 26. if (counter[counterIndex] >= xyz[counterIndex].length) { 27. counter[counterIndex] = 0; 28. counterIndex--; 29. if (counterIndex >= 0) { 30. handle(); 31. } 32. counterIndex = xyz.length - 1; 33. } 34. } 35. 36.}
输出共2*3*4=24行:
aa1 bb1 cc1
aa1 bb1 cc2
aa1 bb1 cc3
aa1 bb1 cc4
aa1 bb2 cc1
aa1 bb2 cc2
aa1 bb2 cc3
aa1 bb2 cc4
aa1 bb3 cc1
aa1 bb3 cc2
aa1 bb3 cc3
aa1 bb3 cc4
aa2 bb1 cc1
aa2 bb1 cc2
aa2 bb1 cc3
aa2 bb1 cc4
aa2 bb2 cc1
aa2 bb2 cc2
aa2 bb2 cc3
aa2 bb2 cc4
aa2 bb3 cc1
aa2 bb3 cc2
aa2 bb3 cc3
aa2 bb3 cc4
0 0
- 笛卡儿积的Java算法实现
- 笛卡儿积与我的小故事
- sql server2008处理笛卡儿积的逻辑——记一次解决疑惑
- 笛卡儿积 及 full outer join
- 二维数组转换为笛卡儿积
- 集合的基本运算: 依据集合运算规则,实现任意给定两个集合的交、并、差、笛卡儿积运算,和第一个集合的幂集,并显示运算结果。
- Java实现的算法
- 数字几何之笛卡儿的法国良心存在时间谭
- join left join right join outer join 以及笛卡儿积
- hibernate之HQL之full join和笛卡儿积
- 问题划分之二,乘法原理,笛卡儿积
- 类型转换,笛卡儿积和联合结果集
- 笛卡尔积算法的Java实现
- 笛卡尔积算法的Java实现
- 笛卡尔积算法的Java实现
- 笛卡尔积算法的Java实现
- MD5 算法的java实现
- java 的md5算法实现
- Python安装Scrapy爬虫工具
- Cocos2d-X 3.4版-地图无限滚动与边缘检测《赵云要格斗》
- java 中的 '\0'
- block
- HDU 4281 Judges' response 状态压缩 01背包 MTSP
- 笛卡儿积的Java算法实现
- Codeforces Round #290 (Div. 1)B. Fox And Jumping
- linux 进程调度策略
- javascript对url进行encode的两种方式
- POJ 3294 (UVA 11107) Life Forms 后缀数组
- Java线程面试题 Top 50
- hdu 2846 Repository 字典树的一种变形
- Func和Action,委托与lambda表达式,一看就知道
- iOS开发_剪贴板操作_复制粘贴功能