一个数字数组中所有的排列(java)
2007-01-10 17:17
507 查看
1,2,3,4,5,6 数组 打印出所有 可能的排列,随便写了一个。
package Test;
public class PrintListTest1 {
//计算总共有多少列表
private static int i=0;
//保存所有排列结果
String resultstr="";
//将数组转换成字符串
private String getList(int[] a){
String result="";
for(int len=0;len<a.length;len++)
result=result+a[len];
return result;
}
/*
传递去除元素的数组
*/
private int[] DelArray(int[] a,int pos){
if (pos>a.length-1) return a;
int len=a.length-1;
int[] newArray=new int[len];
for(int i=0;i<len+1;i++){
if (i<pos) newArray[i]=a[i];
if (i>pos) newArray[i-1]=a[i];
}
return newArray;
}
void GetList(String prestr,int[] a){
//只有一个数组元素的时候就返回结果了
if (a.length<2){
String result= prestr+getList(a); //结果
resultstr=resultstr+result+"/n" ;
i++;
return;
}
//关键是下面一句,递归
for(int i=0;i<a.length;i++)
GetList(prestr+a[i],DelArray(a,i));
}
public static void main(String[] args) {
PrintListTest1 printlisttest1 = new PrintListTest1();
int[] a={1,2,3,4,5,6};
printlisttest1.GetList("",a); //得到所有排列
System.out.println(printlisttest1.resultstr);
System.out.println("共有"+printlisttest1.i+"种排列");
}
}
package Test;
public class PrintListTest1 {
//计算总共有多少列表
private static int i=0;
//保存所有排列结果
String resultstr="";
//将数组转换成字符串
private String getList(int[] a){
String result="";
for(int len=0;len<a.length;len++)
result=result+a[len];
return result;
}
/*
传递去除元素的数组
*/
private int[] DelArray(int[] a,int pos){
if (pos>a.length-1) return a;
int len=a.length-1;
int[] newArray=new int[len];
for(int i=0;i<len+1;i++){
if (i<pos) newArray[i]=a[i];
if (i>pos) newArray[i-1]=a[i];
}
return newArray;
}
void GetList(String prestr,int[] a){
//只有一个数组元素的时候就返回结果了
if (a.length<2){
String result= prestr+getList(a); //结果
resultstr=resultstr+result+"/n" ;
i++;
return;
}
//关键是下面一句,递归
for(int i=0;i<a.length;i++)
GetList(prestr+a[i],DelArray(a,i));
}
public static void main(String[] args) {
PrintListTest1 printlisttest1 = new PrintListTest1();
int[] a={1,2,3,4,5,6};
printlisttest1.GetList("",a); //得到所有排列
System.out.println(printlisttest1.resultstr);
System.out.println("共有"+printlisttest1.i+"种排列");
}
}
相关文章推荐
- 编程:用java 语言实现,输入一个数,就相应地输出的几维数组!||用1、2、2、3、4、5这六个数字,用java写一个函数,打印出所有不同的排列,要求:"4"不能在第三位,"3"与"5"不能相连
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 2013年用友校招编程题:用1、2、2、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列
- 用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列, 如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连.
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- Java经典算法集——如下:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
- 用1、2、3、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列 要求:"4"不能在第三位,"3"与"5"不能相连。
- 用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。用1、2、2、3、4、5这六
- java输出一个数组的所有排列形式(全排序)
- 用1、2、3、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列 要求:"4"不能在第三位,"3"与"5"不能相连。
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 用1、2、2、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列 如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连
- 1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列, 如:512234、412345等.要求:"4"不能在第三位,"3"与"5"不能相连.
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。