打印一个数组的全部排序组合
打印一个数组的所有排序组合
import java.util.ArrayList;
import java.util.List;
@SuppressWarnings("unchecked")
public class Test {
private static int m=0;
public static void main(String agr[]) {
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(6);
list.add(7);
//方法一 只接受3个数字
//prt(list);
//方法二接受多个数字
prt(list,"");
System.out.println("总次数"+m);
}
//方法二 由方法一延伸而来
private static void prt(List list,String s) {
for (int i = 0; i < list.size(); i++) {
List list1 = getL(list,list.get(i));
if(list1.size()==1){
m++;
System.out.println(s+list.get(i)+list1.get(0));
}else{
prt(list1,s+list.get(i));
}
}
}
//方法一
private static void prt(List list) {
for (int i = 0; i < list.size(); i++) {
List list1 = getL(list,list.get(i));
for(int j=0;j<list1.size();j++){
List ll1 = getL(list1,list1.get(j));
for(int m=0;m<ll1.size();m++){
System.out.println(list.get(i)+""+list1.get(j)+ll1.get(m));
}
}
}
}
//返回为使用的数组
private static List getL(List a,Object o) {
List list = new ArrayList();
for (int i = 0; i < a.size(); i++) {
if (!a.get(i).equals(o)) {
list.add(a.get(i));
}
}
return list;
}
}
import java.util.ArrayList;
import java.util.List;
@SuppressWarnings("unchecked")
public class Test {
private static int m=0;
public static void main(String agr[]) {
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(6);
list.add(7);
//方法一 只接受3个数字
//prt(list);
//方法二接受多个数字
prt(list,"");
System.out.println("总次数"+m);
}
//方法二 由方法一延伸而来
private static void prt(List list,String s) {
for (int i = 0; i < list.size(); i++) {
List list1 = getL(list,list.get(i));
if(list1.size()==1){
m++;
System.out.println(s+list.get(i)+list1.get(0));
}else{
prt(list1,s+list.get(i));
}
}
}
//方法一
private static void prt(List list) {
for (int i = 0; i < list.size(); i++) {
List list1 = getL(list,list.get(i));
for(int j=0;j<list1.size();j++){
List ll1 = getL(list1,list1.get(j));
for(int m=0;m<ll1.size();m++){
System.out.println(list.get(i)+""+list1.get(j)+ll1.get(m));
}
}
}
}
//返回为使用的数组
private static List getL(List a,Object o) {
List list = new ArrayList();
for (int i = 0; i < a.size(); i++) {
if (!a.get(i).equals(o)) {
list.add(a.get(i));
}
}
return list;
}
}