递归实现全排列(java版)
2016-11-29 14:01
197 查看
import java.util.Arrays;
public class test{
static int count = 0;
static void swap(int array[],int a, int b) {
int temp = array[a];
array[a]=array[b];
array[b]=temp;
}
/* static void swap(int a, int b) { //这种只是传递副本,交换副本,如果传递的是对象那就会直接交换。
int temp = a;
a=b;
b=temp;
}*/
static void permutation(int[] arr, int a, int length){
if(a == length){
++count;
System.out.println(Arrays.toString(arr));
}
else{
for(int i = a; i <length; ++i){
swap(arr,a,i);
permutation(arr, a + 1, length);
swap(arr,a,i);
}
}
}
public static void main(String[] args) {
int [] str = {1,2,3,4,5,6,7,8,9};
permutation(str, 0, 9);
System.out.println(count);
}
}
public class test{
static int count = 0;
static void swap(int array[],int a, int b) {
int temp = array[a];
array[a]=array[b];
array[b]=temp;
}
/* static void swap(int a, int b) { //这种只是传递副本,交换副本,如果传递的是对象那就会直接交换。
int temp = a;
a=b;
b=temp;
}*/
static void permutation(int[] arr, int a, int length){
if(a == length){
++count;
System.out.println(Arrays.toString(arr));
}
else{
for(int i = a; i <length; ++i){
swap(arr,a,i);
permutation(arr, a + 1, length);
swap(arr,a,i);
}
}
}
public static void main(String[] args) {
int [] str = {1,2,3,4,5,6,7,8,9};
permutation(str, 0, 9);
System.out.println(count);
}
}
相关文章推荐
- JAVA语言之全排列的递归实现
- 全排列的递归实现(Java版)
- Java递归实现全排列
- JAVA递归实现全排列
- Java用递归实现的数组的全排列
- java 递归实现元素全排列
- Java 递归实现全排列
- java递归实现全排列
- java递归实现全排列
- java用递归实现折半查找法
- java实现的递归方法逆序对查找
- 全排列递归实现的讨论
- 全排列的递归实现
- Java实现的全排列和排列
- Java实现折半查找(二分查找)的递归和非递归算法
- 简单全排列C递归实现 没考虑重复情况
- java 递归实现二叉树
- 递归的使用——关于括号排列(分别使用Java和C++算法实现)
- java语言实现的二叉树的各种操作(包括递归与非递归遍历二叉树,求二叉树的高度,节点总数,叶子节点等)
- 回文 用递归实现 java