还有一种算法:
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实现字符数组的全排列。 首先,我们需要...
二维数组全排列生成方法,采用递归方法实现,10*24大概用时30min,有待进一步改进
在PHP中,数组全排列是指将数组中的所有元素进行所有可能的排列组合。这通常涉及到回溯算法或者基于比较的排序技巧。以下是对标题和描述中提到的PHP数组全排列方法的详细解释: 首先,我们需要一个包含多个元素的...
本文实例讲述了php求数组全排列,元素所有组合的方法总结。 分享给大家供大家参考,具体如下: <?php $source = array('pll','我','爱','你','嘿'); sort($source); //保证初始数组是有序的 $last = count($...
2. **基本情况**:当临时数组的长度等于原始数组长度时,表示找到一个完整的排列,将其添加到结果数组中。 3. **递归过程**:对于原始数组中的每一个未使用过的元素,将其添加到临时数组中,然后对剩余的元素进行...
用c语言实现对一个动态数组的全排列,其中保存生成的全排列用了一个二维指针,求全排列用的递归的方法,代码在vc++6.0下调试通过,并附有详细注释。
2. 从后向前扫描数组,找到第一个比其前一个元素大的元素,将该位置设为`signer`。 3. 在`signer`之后的范围内,找到大于且最接近于`array[signer-1]`的数`array[t]`。 4. 将`array[t]`与`array[signer-1]`互换,以...
本文实例讲述了JS实现的数组全排列输出算法。分享给大家供大家参考。具体分析如下: 这段js代码对数组进行全排列输出,改进了一些老的代码 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个...
本文实例讲述了python回溯法实现数组全排列输出的方法。分享给大家供大家参考。具体分析如下: 全排列解释:从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个...
本文实例讲述了C#通过yield实现数组全排列的方法。分享给大家供大家参考。具体分析如下: 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的...
本文实例讲述了python标准算法实现数组全排列的方法,代码来自国外网站。分享给大家供大家参考。具体分析如下: 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一...
本文实例讲述了JavaScript实现数组全排列、去重及求最大值算法。分享给大家供大家参考,具体如下: 1、全排列(递归) function permutation(arr){ if (arr.length == 1) return arr; else if (arr.length == 2)...
在Python编程中,数组全排列是一项常见的算法问题,特别是在数据处理和组合优化中。全排列是指从给定的n个不同元素中取出n个元素的所有可能的排列方式。本篇文章将详细讲解如何利用Python的`yield`关键字来高效地...