package com.syj.csdn; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * <p> * Title:全排列算法 * </p> * * <p> * Copyright: http://blog.csdn.net/sunyujia/ * </p> * * @author 孙钰佳 * @main sunyujia@yahoo.cn * @date 2009-04-25 23:57:23 PM */ public class FullSort { //将NUM设置为待排列数组的长度即实现全排列 private static int NUM = 3; /** * 递归算法:将数据分为两部分,递归将数据从左侧移右侧实现全排列 * * @param datas * @param target */ private static void sort(List datas, List target) { if (target.size() == NUM) { for (Object obj : target) System.out.print(obj); System.out.println(); return; } for (int i = 0; i < datas.size(); i++) { List newDatas = new ArrayList(datas); List newTarget = new ArrayList(target); newTarget.add(newDatas.get(i)); newDatas.remove(i); sort(newDatas, newTarget); } } public static void main(String[] args) { String[] datas = new String[] { "a", "b", "c", "d" }; sort(Arrays.asList(datas), new ArrayList()); } } 原文网址:http://blog.csdn.net/sunyujia/archive/2009/04/26/4124011.aspx
发表评论
-
全排列3
2009-06-04 02:26 618public class FullArray ...{ ... -
全排列
2009-06-04 02:07 715算法1 一个经典的全排列算法zz2007-06-1 ... -
Java排序问题
2009-04-27 20:04 710package com.softeem.jbs.lesso ... -
水仙花数
2009-04-15 21:28 1128public class StaticClass{ ... -
百钱百鸡
2009-04-15 21:27 702public class ma { public s ... -
猴子吃桃
2009-04-15 21:25 791/*public class Chitao { publ ... -
用dom4j组件解析如下XML格式的文件:
2009-04-15 21:18 768<?xml version="1.0&qu ... -
做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思
2009-04-15 21:16 4819interface Animal { publ ... -
做一个单子模式的类,只加载一次属性文件
2009-04-15 21:14 972import java.io.FileInputStrea ... -
拷贝一个目录(文件)到指定路径
2009-04-15 21:12 983/** *拷贝一个目录或者文件到指定路径下 ... -
用JAVA中的多线程示例银行取款问题
2009-04-15 21:09 2001/** *@authorleno *账户类 * ... -
用JAVA中的多线程示例火车站售票问题
2009-04-15 21:07 2336/** *@authorleno *售票类 * ... -
用JAVA中的多线程示例生产者和消费者问题
2009-04-15 21:05 737class Producer implements Run ... -
编程实现序列化的Student(sno,sname)对象
2009-04-15 21:03 907import java.io.IOException; ... -
二分查找特定整数在整型数组中的位置
2009-04-15 21:00 789/** *二分查找特定整数在整型数组中的位置( ... -
获得任意一个int类型的阶乘
2009-04-15 20:59 794/** *获得任意一个整数的阶乘 ... -
将某个日期以固定格式转化成字符串
2009-04-15 20:56 844/*将某个日期以固定格式转化成字符串 ... -
一般的正弦曲线
2009-04-15 20:31 662import java.applet.*; import ... -
线程的正弦函数
2009-04-15 20:27 773import java.awt.*; import ja ... -
画星的两个方法
2009-04-14 23:26 674方法一: public class T { ...
相关推荐
递归实现元素全排列
基于深度优先搜索的思想实现n以内的全排列问题
全排列代码,C语言代码,用来解决全排列问题,csc 认证
全排列acc pascal程序加题解 全排列 Time Limit:20000MS Memory Limit:65536K Total Submit:506 Accepted:218 Description 列出所有数字1到数字n的连续自然数的排列,要求所产生的任一数字序列中不允许出现得复...
用C++语言写的全排列,有助于理解递归,全排列,全排列,全排列,全排列
自己写的基于字符的全排列算法,代码简洁,高效,7位数的全排列都是秒排!用到了广度优先排列,深度优先搜索和几个递归,唯一没完成的是退出时释放内存,呵呵,破解密码时超有用的哟,,
CC++全排列..1--n的全排列以及字符串的全排列
/*设R=(1, 2, .., n),计算R的全排列。 分治法求解全排列的算法思想: 设R=(1, 2, .., n)的全排列为P(R), 若R=(),则P()=(); 否则,P(R)={(1)P(2, 3, .., n),(2)P(1, 3, .., n), (3)P(2, 1, .., n), .., (n)...
全排列是将一组数按一定顺序进行排列,如果这组数有n个,那么全排列数为n!个。现以{1, 2, 3, 4, 5}为 例说明如何编写全排列的递归算法。 1、首先看最后两个数4, 5。 它们的全排列为4 5和5 4, 即以4开头的5的全排列...
全排列算法
集X中元素的全排列记为Perm(X),(ri)Perm(X)表示在全排列Perm(X)的每一个排列前加上前缀ri得到的排列.R的全排列可归纳定义如下: 当n=1时,Perm(R)={r},r是集合R中唯一的元素. 当n>1时,Perm(R)由(r1)Perm(R1),(r2)...
全排列算法
适用于算法课程求n个元素的全排列,从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。 公式:全排列数f(n)=n!(定义0!=1)
在程序设计过程中,我们往往要对一个序列进行全排列或者对每一个排列进行分析。全排列算法便是用于产生全排列或者逐个构造全排列的方法。当然,全排列算法不仅仅止于全排列,对于普通的排列,或者组合的问题,也可以...
(2)字典序排列 把升序的排列(当然,也可以实现为降序)作为当前排列开始,然后依次计算当前排列的下一个字典序排列。对当前排列从后向前扫描,找到一对为升序的相邻元素,记为i和j(i )。如果不存在这样一对为...
全排列的生成算法
去重全排列的递归实现 去掉重复数字的 全排列的 递归实现
主要介绍了Java实现字符数组全排列的方法,涉及Java针对字符数组的遍历及排序算法的实现技巧,需要的朋友可以参考下
全排列算法: 比如字符串abc,全排列结果为abc,acb,bac,bca,cba,cab。
全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下...