一个排列问题 从1~12中选出6个数字排列,如2 3 8 5 12 6,用java怎样实现列举出所有的排列?有朋友说用hash map,但是有没有更便捷更灵活的方法?比如说可以任选数字的个数,求指教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 package exec.basic;public class Paixu { public static void main(String[] args) throws Exception { char[] para = {1,2,3,4,5,6,7,8,9}; for(int i=0;i<para.length;i++) para[i]+=48; paixu(para,para.length,0); } private static void paixu(char[] array, int n, int k) { if (n == k) { char[] out = new char[n]; for (int i = 0; i < array.length; i++) { out[i] = array[i]; } System.out.println(new String(out)); } else { for (int i = k; i < n; i++) { swap(array, k, i); paixu(array, n, k + 1); swap(array, i, k); } } } private static void swap(char[] a, int x, int y) { char temp = a[x]; a[x] = a[y]; a[y] = temp; }} 这里是我之前写的排列组合工具类:http://blog.csdn.net/raistlic/article/details/7844812前面有用法的代码示例,后面有源代码。 (求助关于服务器与客户端的问题) 论坛采集程序应该分为几个部分?分别是什么? 求助:eclipse3.2+tomcat5.5+myeclipse5.1搭建成功,建立jsp报错 ResultSet 是一次返回所有,还是通过next一次次去连接db取? 急 求助:写一个共公调用函数? 最近闲的无聊,想找点儿东西学学,不知是.Net还是Java好?我知道学哪门语言都不错,还请大家说说吧! 谁有这个zip包的密码? 哪儿有JdbcOdbcDriver 如何设定jTextfield控件的输入长度? JAVA的GUI事件处理 请教 hashmap 转 set 的一个问题。 java JavaScript
public static void main(String[] args) throws Exception {
char[] para = {1,2,3,4,5,6,7,8,9};
for(int i=0;i<para.length;i++)
para[i]+=48;
paixu(para,para.length,0);
}
private static void paixu(char[] array, int n, int k) {
if (n == k) {
char[] out = new char[n];
for (int i = 0; i < array.length; i++) {
out[i] = array[i];
}
System.out.println(new String(out));
} else {
for (int i = k; i < n; i++) {
swap(array, k, i);
paixu(array, n, k + 1);
swap(array, i, k);
}
}
}
private static void swap(char[] a, int x, int y) {
char temp = a[x];
a[x] = a[y];
a[y] = temp;
}}