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 求daily translation(DT)偏差订正方法的代码
- ¥15 js调用html页面需要隐藏某个按钮
- ¥15 ads仿真结果在圆图上是怎么读数的
- ¥20 Cotex M3的调试和程序执行方式是什么样的?
- ¥20 java项目连接sqlserver时报ssl相关错误
- ¥15 一道python难题3
- ¥15 牛顿斯科特系数表表示
- ¥15 arduino 步进电机
- ¥20 程序进入HardFault_Handler
- ¥15 关于#python#的问题:自动化测试