题目:给一个数组,打印出所有的排列
import java.util.Arrays;
public class Pailie {
int b[]; //保存结果
int a[];
Pailie(int [] a){
b = new int[a.length];
this.a=a;
}
public void backTrack(int begin){
if(begin==a.length)print(b); //递归的底部了
else
{ //比如1234 begin=1那么(1)234 经过这个循环
//第一回合(12)backTrack(34)
//第二回合(13)backTrack(24)
//第三回合(14)backTrack(23)
for(int j=begin ;j<a.length;j++){
b[begin]=a[j]; //把当前的给结果
shift(a,begin,j); //交换
backTrack(begin+1);//递归
shift(a,j,begin); //交换回原来的状态
}
}
}
public void shift(int [] a,int i,int j){
int temp =a[i];
a[i] = a[j];
a[j] = temp;
}
public void print(int [] b){
System.out.println(Arrays.toString(b));
}
public static void main(String [] args){
int [] a={1,2,3};
Pailie p = new Pailie(a);
p.backTrack(0);
}
}
分享到:
相关推荐
从n个数组中取出所有排列组合(Java实现)
将数组逆序排列,C语言实现,VC下编译通过。
用C语言编写两个数组合并成一个数组,并有序排列 。数组合并。
将60个数据排列成三维的矩阵,可以直接在cfree中运行
给定一个数组,数组包含10个整型元素,将其按照从小到大的顺序排列后输出,要求排序的算法用子程序来实现。
数组是引用类型,也就是说在定义和调用函数时,数组这种参数前加不加ref它都是引用参数,但是实参数组一定要初始化
定义一个将数组元素输出到屏幕的函数,函数的参数也是数组类型,函数命名为OutputArray; 定义main函数,在其中定义并初始化arrayorder数组,然后分别钓用InputArray函数输入新的数组元素的值,然后调用SortArray...
PHP实现一维数组的组合算法,欢迎下载和评论。
c语言数组排列
【输入形式】用户在第一行输入第一个有序数组的元素数目,以回车结束此输入。然后在第二行按照刚才输入的元素数目依次输入数组元素,中间用空格分隔,最后用回车结束输入。第三行和第四行只需重复刚才的步骤,将第二...
这是有关二级VB题型:是关于一维数组元素排列 整理了一些常考题型
matlab开发-多维数组的合并排序。使用合并排序技术对单个或多维数组进行排序。
使用随机数填充一个具有10个元素的一维byte数组,并按降序排列显示其值;本文使用冒泡排序进行;byte数据的隐性转换,数组的定义;
C语言程序设计-有一个一维数组score,内放10个学生的成绩,用一个函数来求平均成绩;
lk122411数组降序排列.cpp
将两个有序数组,合并成另一个有序的数组,升序。将两个有序数组,合并成另一个有序的数组,升序。将两个有序数组,合并成另一个有序的数组,升序
主要为大家详细介绍了Java实现多个数组间的排列组合,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
a) 随机生成一个一维数组,数组元素个数可设置。 b) 对数组值进行求和、标准差、平均数、中位数。 c) 数组元素升序、降序排列 d) 插入、删除数组元素值 e) 输出各计算值
Please use recursion(递归)to get fibonacci numbers(一种整数数列). The user will specify(指定,详细说明) how many of the numbers he or she wants to print. You can use the main function to print ...
构造函数,初始化输入数组元素,这里要求数组元素的个数n是一个变量; 析构函数,释放数组元素所占用的堆内存; Set函数,可以为指定的数组元素赋值; Get函数,可以读取指定数组元素的值; Print函数,可以输出数组...