import java.util.Arrays;
/**
* 获得数组全排列的一个实现算法
*
* @author 老紫竹的家(laozizhu.com)
*
*/
public class Test {
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编程中,全排列是一个常见的问题,它涉及到算法和数据结构的知识。全排列是指从给定的字符数组中,按照一定的顺序生成所有可能的排列组合。这个问题通常使用回溯法来解决,因为它能够有效地避免重复的排列。...
以下是一个简单的Objective-C代码示例,实现了全排列算法: ```objc #import @interface ArrayPermutation : NSObject // 主函数,接收原始数组,返回全排列结果 + (NSArray *)fullPermutations:(NSArray *)...
总结来说,上述PHP代码通过迭代的方式,结合希尔排序的思想,实现了数组全排列的功能。这种方法不仅可以应用于数组元素的全排列,还可以拓展到其他需要生成所有可能组合的场景,例如密码生成、数据筛选等。理解这种...
通过文件信息的描述和内容分析,我们可以了解到JavaScript中实现数组全排列输出算法的方法,理解了全排列问题的递归解法原理,以及在实际编程中的技巧和注意事项。这对于提升JavaScript编程能力和解决相关算法问题是...
在这个问题中,我们讨论的是如何在C#中实现数组元素的全排列算法。 首先,我们要理解全排列的基本思想。一种常见的方法是使用回溯法,即深度优先搜索(DFS),从数组的第一个元素开始,逐个尝试将其与后面的元素...
本文实例讲述了Golang排列组合算法问题之全排列实现方法。分享给大家供大家参考,具体如下: 【排列组合问题】 一共N辆火车(0<N<10),每辆火车以数字1-9编号,要求以字典序排序输出火车出站的序列号。 输入:...
在本篇文章中,将介绍一种利用递归实现数组全排列的方法,以及其原理和技巧。 首先,来看一下排列问题的定义:从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个...
在PHP编程语言中,处理数组的排列组合是一个常见的任务,特别是在进行算法分析、数据操作或者逻辑处理时。本文将深入探讨如何使用PHP实现数组的全排列,即获取数组中所有可能的元素组合。 首先,全排列是指从n个...
在介绍的Python回溯法实现数组全排列输出实例中,首先定义了全排列的概念。全排列是指从n个不同元素中取出m个元素的所有可能的排列组合,其中m可以等于或小于n。当m等于n时,我们称之为“全排列”。换言之,全排列是...
本文实例讲述了JavaScript实现数组全排列、去重及求最大值算法。分享给大家供大家参考,具体如下: 1、全排列(递归) function permutation(arr){ if (arr.length == 1) return arr; else if (arr.length == 2)...
在本例中,我们将探讨如何利用`yield`关键字来高效地生成一个数组的全排列。 `yield`是Python中的一个特殊关键字,它允许函数作为生成器来逐步生成结果,而不是一次性返回所有结果。这种延迟计算的能力使得生成器在...
Kotlin实现的八大排序算法,已封装好。
全排列算法是计算机科学中一个基础且重要的问题,它涉及到数组或序列的所有可能的线性排列方式。在处理这个问题时,我们通常会采用递归或迭代的方式来实现。下面将详细介绍全排列算法及其优化方法。 全排列算法的...
全排列是一种经典的算法问题,它涉及在给定的有限序列中找出所有可能的元素排列方式。...代码可能涉及到循环、条件判断、数组操作等基本编程概念,通过学习和实践,可以提升对全排列算法的理解和应用能力。