Java用递归实现的数组的全排列
2014-07-17 21:01
274 查看
所谓全排列,数学上的定义是:从n个不同的物体中选出m个进行排列的方法数称为排列, 当m=n时称为全排列。比如一组数1、2、3,那么全排列为:123、132、213、231、312、321。数学上,也有一套理论来计算这种个m和n的排列问题,比如3个数的全排列就有P(3)=3*2*1=6种。
public class AllSort{ public static void main(String[] args) { char buf[]={'a','b','c'}; perm(buf,0,buf.length-1); } public static void perm(char[] buf,int start,int end){ if(start==end){//当只要求对数组中一个字母进行全排列时,只要就按该数组输出即可 for(int i=0;i<=end;i++){ System.out.print(buf[i]); } System.out.println(); } else{//多个字母全排列 for(int i=start;i<=end;i++){ char temp=buf[start];//交换数组第一个元素与后续的元素 buf[start]=buf[i]; buf[i]=temp; perm(buf,start+1,end);//后续元素递归全排列 temp=buf[start];//将交换后的数组还原 buf[start]=buf[i]; buf[i]=temp; } } } }
相关文章推荐
- 转java实现数组全排列
- java递归实现全排列
- 递归实现全排列(java版)
- 递归方法判断数组中的元素是否有序(Java实现)
- JAVA 采用递归方式实现求数组最大值
- 最大子数组问题分治法(递归)Java实现
- Java实现数组的全排列
- Java代码实现一维数组的二分查找(折半查找)(非递归方法)
- 通过递归判断一个整形数组是否按升序排列(java实现)
- JAVA递归实现全排列
- 使用递归求数组最大值(java实现)
- 字符串数组元素排列与组合的Java递归实现
- 递归实现数组全排列
- java 递归全排列 (数组,容器两种实现)
- java递归实现全排列
- 递归实现逆转数组(Java实现)
- java的递归任务和分治算法实现大数组数据求和
- Java实现数组全排序(递归)
- java 实现递归查找数组中的重复数字
- java实现数组全排列