`
whoami0508
  • 浏览: 8636 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

数组的全排列(2)

    博客分类:
  • java
阅读更多

还有一种算法:

import java.util.Arrays; 
/**
03. * 获得数组全排列的一个实现算法
04. * 
05. *
06. * 
07. */ 
public class TestA { 
  static String[] array = { "x", "y", "z" }; 
  public static void main(String[] args) { 
    getAllOrder(0, array.length - 1); 
  } 
  public static void getAllOrder(int begin, int end) { 
    if (begin == end) { 
      check(); 
    } else { 
      for (int i = begin; i <= end; i++) { 
        // 交换数据 
        swap(begin, i); 
        getAllOrder(begin + 1, end); 
        swap(i, begin); 
      } 
    } 
  } 
  public static void swap(int from, int to) { 
    // 这里应该加上各种防止无效交换的情况 
    // 比如位置相同,或者2个位置的数据相同 
    if (from == to) { 
      return; 
    } 
    String tmp = array[from]; 
    array[from] = array[to]; 
    array[to] = tmp; 
  } 
  public static void check() { 
    // 排列拿到了,可以进行你的判断了。 
   System.out.println(Arrays.toString(array)); 
  } 

分享到:
评论

相关推荐

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

    全排列是指从给定的字符数组中,按照一定的顺序生成所有可能的排列组合。这个问题通常使用回溯法来解决,因为它能够有效地避免重复的排列。下面我们将深入探讨如何使用Java实现字符数组的全排列。 首先,我们需要...

    二维数组全排列代码C++版

    二维数组全排列生成方法,采用递归方法实现,10*24大概用时30min,有待进一步改进

    php求数组全排列,元素所有组合的方法

    在PHP中,数组全排列是指将数组中的所有元素进行所有可能的排列组合。这通常涉及到回溯算法或者基于比较的排序技巧。以下是对标题和描述中提到的PHP数组全排列方法的详细解释: 首先,我们需要一个包含多个元素的...

    php求数组全排列,元素所有组合的方法总结

    本文实例讲述了php求数组全排列,元素所有组合的方法总结。 分享给大家供大家参考,具体如下: &lt;?php $source = array('pll','我','爱','你','嘿'); sort($source); //保证初始数组是有序的 $last = count($...

    objective-c数组全排列算法

    2. **基本情况**:当临时数组的长度等于原始数组长度时,表示找到一个完整的排列,将其添加到结果数组中。 3. **递归过程**:对于原始数组中的每一个未使用过的元素,将其添加到临时数组中,然后对剩余的元素进行...

    求一个动态数组的全排列,c语言实现

    用c语言实现对一个动态数组的全排列,其中保存生成的全排列用了一个二维指针,求全排列用的递归的方法,代码在vc++6.0下调试通过,并附有详细注释。

    C#求数组中元素全排列的方法

    2. 从后向前扫描数组,找到第一个比其前一个元素大的元素,将该位置设为`signer`。 3. 在`signer`之后的范围内,找到大于且最接近于`array[signer-1]`的数`array[t]`。 4. 将`array[t]`与`array[signer-1]`互换,以...

    JS实现的数组全排列输出算法

    本文实例讲述了JS实现的数组全排列输出算法。分享给大家供大家参考。具体分析如下: 这段js代码对数组进行全排列输出,改进了一些老的代码 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个...

    python回溯法实现数组全排列输出实例分析

    本文实例讲述了python回溯法实现数组全排列输出的方法。分享给大家供大家参考。具体分析如下: 全排列解释:从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个...

    C#通过yield实现数组全排列的方法

    本文实例讲述了C#通过yield实现数组全排列的方法。分享给大家供大家参考。具体分析如下: 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的...

    python标准算法实现数组全排列的方法

    本文实例讲述了python标准算法实现数组全排列的方法,代码来自国外网站。分享给大家供大家参考。具体分析如下: 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一...

    JavaScript实现数组全排列、去重及求最大值算法示例

    本文实例讲述了JavaScript实现数组全排列、去重及求最大值算法。分享给大家供大家参考,具体如下: 1、全排列(递归) function permutation(arr){ if (arr.length == 1) return arr; else if (arr.length == 2)...

    python通过yield实现数组全排列的方法

    在Python编程中,数组全排列是一项常见的算法问题,特别是在数据处理和组合优化中。全排列是指从给定的n个不同元素中取出n个元素的所有可能的排列方式。本篇文章将详细讲解如何利用Python的`yield`关键字来高效地...

Global site tag (gtag.js) - Google Analytics