`
yuyeyi
  • 浏览: 38138 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

全排列3

阅读更多
public class FullArray ...{
 public String[] s=...{"a","b","c"};
 public void run()...{  
  int j2;                              //指向要对换的位置
  int sLength=s.length;
  for(int i=0;i<getP(s.length);i++)...{  //外层循环以便获取全部组合
   String[] tempString=s.clone();   //由于对象传的是句柄也就是地址,因此为保证原来数组不变,必须使用对象克隆
   for(int j=0;j<i;j++)...{           //i次的对换
    j2=j%(sLength-1);
    change(j2,tempString);
   }
   for(int l=0;l<sLength;l++)...{     //输出这一次对换后的排列
    System.out.print(tempString[l]);
   }
   System.out.println();
  }
 }
 public int getP(int i)...{                //获得全排列数all
  int all=1;
  for(int j=i;j>0;j--)...{
   all=all*j;
  }
  return all;
 }
 public void change(int i,String[] tempString)...{//
  String t="";
  t=tempString[i];
  tempString[i]=tempString[i+1];
  tempString[i+1]=t;
 }
 public static void main(String[] args)...{
  FullArray fa=new FullArray();
  fa.run();
 }
}

文章出处:http://www.diybl.com/course/3_program/java/javajs/2008315/104683.html
分享到:
评论

相关推荐

    全排列代码,C语言代码,用来解决全排列问题

    全排列代码,C语言代码,用来解决全排列问题,csc 认证

    3以内的全排列

    本程序实现了3以内的全排列,支持扩展功能,输出内容特别清晰!

    排列里面的全排列,全排列,全排列

    用C++语言写的全排列,有助于理解递归,全排列,全排列,全排列,全排列

    生成全排列矩阵.zip

    例如,对于数字序列1, 2, 3,其全排列包括(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2)和(3, 2, 1)。在MATLAB中,生成全排列矩阵的算法通常涉及递归或回溯方法。 MATLAB是一种强大的数值计算和符号计算...

    全排列算法C语言超简洁

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

    Java实现字符数组全排列的方法

    在Java编程中,全排列是一个常见的问题,它涉及到算法和数据结构的知识。全排列是指从给定的字符数组中,按照一定的顺序生成所有可能的排列组合。这个问题通常使用回溯法来解决,因为它能够有效地避免重复的排列。...

    一种计算全排列的简易算法

    3. **剪枝**:为了提高效率,可以通过剪枝技术避免不必要的计算,比如记录已使用过的元素,防止重复。 4. **时间复杂度**:全排列算法的时间复杂度通常是O(n!),因为对于n个元素有n!种排列方式。 5. **空间复杂度*...

    全排列是将一组数按一定顺序进行排列,如果这组数有n个,那么全排列数为n!个。现以{1, 2, 3, 4, 5}为

    它们的全排列为3 4 5、3 5 4、 4 3 5、 4 5 3、 5 3 4、 5 4 3 六组数。 即以3开头的和4,5的全排列的组合、以4开头的和3,5的全排列的组合和以5开头的和3,4的全排列的组合. 从而可以推断,设一组数p = {r1, r2, r3, ....

    c++编写的全排列源代码

    例如,对于集合{1,2,3},其全排列有6种:(1,2,3),(1,3,2),(2,1,3),(2,3,1),(3,1,2),(3,2,1)。 ### C++全排列源代码分析 #### 1. **程序结构** 程序首先包含了必要的头文件`"stdafx.h"`和`"iostream.h"`,这...

    c# n的全排列

    在编程领域,全排列是一种常见的算法问题,尤其在C#这样的高级编程语言中,它具有广泛的应用场景,例如数据处理、测试用例生成等。全排列是指从n个不同的元素中,按照一定的顺序取出所有可能的排列组合。在这个场景...

    全排列算法解析(完整版)

    例如,序列{1, 2, 3}的全排列按字典序排列为{1, 2, 3}、{1, 3, 2}、{2, 1, 3}、{2, 3, 1}、{3, 1, 2}和{3, 2, 1}。 #### 7. 求下一个字典序排列算法 求序列的下一个字典序排列通常涉及查找序列中第一个可以从升序...

    C/C++全排列

    std::vector&lt;int&gt; nums = {1, 2, 3}; permute(nums, 0); return 0; } ``` 在这个代码中,`permute`函数接收一个整数向量`nums`和一个起始索引`start`。当`start`等于`nums.size()`减1时,表示已经到达数组末尾,...

    局部搜索解决全排列问题

    在这个实验报告中,局部搜索被应用于解决全排列问题,即找到一个给定数量的元素的所有可能排列方式。全排列问题是一个典型的组合问题,具有较高的计算复杂度。 全排列的核心思想是递归。递归是一种函数或程序调用...

    全排列算法解析(完整版)

    全排列是计算机科学和数学中的一个重要概念,指的是从n个不同元素中取出m(m≤n)个元素的所有可能的排序。全排列的数量可以通过排列数公式n!(n的阶乘)来计算。全排列算法广泛应用于程序设计中,尤其是在需要穷举...

    objective-c数组全排列算法

    3. **递归过程**:对于原始数组中的每一个未使用过的元素,将其添加到临时数组中,然后对剩余的元素进行全排列。这一步是通过递归调用全排列方法实现的,每次调用时,将未使用的元素作为新原始数组,临时数组的其他...

    C语言实现的全排列算法

    3. 否则,对于剩余的每一个元素,将其放入当前位置,然后递归处理剩下的元素。在递归调用返回后,撤销此次放置,以便尝试下一个元素。 下面是一个C语言实现全排列的伪代码: ```c void permute(char arr[], int ...

    CC++全排列..1--n的全排列以及字符串的全排列

    CC++全排列算法详解 在计算机科学中,全排列是一个非常重要的概念,它指的是将一个集合中的元素按照一定的顺序排列出来的所有可能的排列方式。在这个文件中,我们将讨论CC++中生成从1到n的全排列算法,以及字符串的...

    全排列算法

    全排列算法

    使用for循环实现全排列

    使用for循环实现全排列是最简单最基础的一个全排列的过程,其他的全排列思想都是出自此处。

Global site tag (gtag.js) - Google Analytics