`
The_Apocalypse
  • 浏览: 7468 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

算法:全排列

 
阅读更多

全排列的算法实现Java版

程序如下:

 

package algorithm;

public class PermAndCombine {
	// 排列组合算法
	//真难理解啊
	//排列组合分很多种 理解的了吗
	//这是多层循环嵌套
	//这是全排列的算法
	//beg  end为数组下标
	public static void perm(int[] bu, int beg, int end) {
		if (beg == end) {
			for (int i = 0; i < bu.length; i++)
				Print.print(bu[i]);
			Print.println("");
		}
		else {
			for (int i = beg; i <= end; i++) {
				swap(bu, beg, i);
				perm(bu, beg + 1, end);
				swap(bu, beg, i);
			}
		}
	}
	//注意这个交换哈,单独给两个值可交换不了,也算有个传值传地址的问题吧
	//自内向外思考才行,程序也得自内向外写
	public static void swap(int[] buf, int a, int b) {
		if (a != b) {
			int temp = buf[a];
			buf[a] = buf[b];
			buf[b] = temp;
		}
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] a = { 1, 2, 3 ,4,5};
		perm(a, 0, 4);
	}
}

 

 结果太长,回去自个试下吧

 

0
2
分享到:
评论

相关推荐

    组合数学全排列算法(转)

    组合数学中六种全排列算法详细解析,对于自学很有帮助哦,这里没有代码。

    全排列算法C语言超简洁

    自己写的基于字符的全排列算法,代码简洁,高效,7位数的全排列都是秒排!用到了广度优先排列,深度优先搜索和几个递归,唯一没完成的是退出时释放内存,呵呵,破解密码时超有用的哟,,

    算法实践:全排列(递归)

    全排列 描述 给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 输入 输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在2到8之间。 输出 输出这个字符串的所有排列方式,每...

    彻底理解全排列算法

    全排列算法: 比如字符串abc,全排列结果为abc,acb,bac,bca,cba,cab。

    常见数据结构与算法C语言实现

    # 常见数据结构与算法C语言实现 内容包含常见基本数据结构实现(C语言版)如各自排序、...- 递归:全排列 - 01背包问题 - 八皇后问题 - 求平方根 - 最大公约数 - 最小公倍数 - KMP算法 - 前缀中缀求后缀 - 哈密顿环

    全排列算法部分算法需要自己优化修改

    全排列算法

    全排列算法

    全排列算法

    全排列的算法 翻转法 换位法 字典序法

    全排列的几种不同算法,方便快捷的实现求全排列。思路简单清晰

    java算法分析与设计之全排列问题源代码

    java算法分析与设计之全排列问题源代码 算法作为计算机专业学生的必修课,同时也是软件开发过程中必备的编程思想,对学习研究计算机专业意义重大;正因为这门课程难,所以除了相关方面的书籍,网络资源少的可怜,尤其...

    C#算法之全排列递归算法实例讲解

    全排列:当n==m时,称为全排列; 比如:集合{ 1,2,3}的全排列为: 代码如下: { 1 2 3} { 1 3 2 } { 2 1 3 } { 2 3 1 } { 3 2 1 } { 3 1 2 } 我们可以将这个排列问题画成图形表示,即排列枚举树,比如下图为{1,2,3}...

    FullPermutation_java_算法_全排列_

    用java语言编写的两种方法求全排列的程序,输入数字的长度可以输出所有的数字全排列

    组合数学全排列换位算法

    组合数学全排列换位算法组合数学全排列换位算法组合数学全排列换位算法组合数学全排列换位算法组合数学全排列换位算法组合数学全排列换位算法组合数学全排列换位算法组合数学全排列换位算法

    全排列算法 实例 一种实现了n个数全排列的算法

    全排列算法 实例 一种实现了n个数全排列的算法 全排列算法 实例 一种实现了n个数全排列的算法

    leetcode跳跃-Leetcode:chifan

    号算法题:全排列 II leetcode 77 号算法题:组合 leetcode 39 号算法题:组合总和 leetcode 40 号算法题:组合总和 Ⅱ leetcode 216 号算法题:组合总和 Ⅲ leetcode 78 号算法题:子集 leetcode 90 号算法题:子集...

    排列组合的全排列算法(交换算法)

    交换算法得到全排列,排列组合的全排列算法(交换算法)

    全排列——递归排序和字典序列

    全排列算法有两个比较常见的实现:递归排列和字典序排列。 (1)递归实现 从集合中依次选出每一个元素,作为排列的第一个元素,然后对剩余的元素进行全排列,如此递归处理,从而得到所有元素的全排列。 (2)字典...

    全排列的生成算法

    全排列的生成算法

    全排列以及相关算法

    全排列算法便是用于产生全排列或者逐个构造全排列的方法。当然,全排列算法不仅仅止于全排列,对于普通的排列,或者组合的问题,也可以解决。本文主要通过对全排列以及相关算法的介绍和讲解、分析,让读者更好地了解...

    组合数学全排列算法

    实现了字典序法、递增进位制数法、递减进位制数法、邻位对换法四种全排列算法。全排列算法有很多种,这里只是其中的一些,可以调试运行比较一下各种算法的效率。(该代码为初级版本,注重算法的实现,在交互方面需要...

Global site tag (gtag.js) - Google Analytics