1,2,2,3,4按不同顺序排列,把每个组合输出用java怎么写啊?
7条回答 默认 最新
- iteye_16709 2011-12-30 18:08关注
采用插入算法实现排列:
[code="java"]
public class Composition {char [][] insert(char [] a,char b) { int row = a.length+1; int col = row ; int insertPos = 0;//插入位置 char [][] r = new char[row][col]; for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { if(j < insertPos) { r[i][j] = a[j]; } else if(j > insertPos ){ r[i][j] = a[j-1]; } else { r[i][j] = b; } } insertPos++; } return r; } char [][] composition(char [] c) { char [][] r = {{c[0]}}; char [][][] d ; int ii; for (int i = 1; i < c.length; i++) { d = new char[r.length][0][0]; for (int j = 0; j < r.length; j++) { d[j]=insert(r[j],c[i]); } r = new char[d.length*d[0].length][0]; ii = 0; for (int j = 0; j < d.length; j++) { for (int j2 = 0; j2 < d[j].length; j2++) { r[ii++] = d[j][j2]; } } } return r; } public static void main(String[] args) { Composition com = new Composition();
// new char[]{'1','2','3','4','2','2'}
// new char[]{'1','2','3','4','2','2','2'}
char [][] r = com.composition(new char[]{'1','2','3','4','2'});
Set set = new HashSet();
System.out.println(r.length);
for (int i = 0; i < r.length; i++) {
set.add(new String(r[i]));
// System.out.println(r[i]);
}
System.out.println(set.size());
Iterator it = set.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
}
[/code]
代码就是就是上面的,具体解释等我有时间了给你解释本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 机器学习教材中的例题询问
- ¥15 求.net core 几款免费的pdf编辑器
- ¥20 SQL server表计算问题
- ¥15 C# P/Invoke的效率问题
- ¥20 thinkphp适配人大金仓问题
- ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)
- ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
- ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
- ¥15 彩灯控制电路,会的加我QQ1482956179
- ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传