`

java实现全排列

阅读更多
package wgy;

import java.util.ArrayList;

public class Test11 {

private int total = 0; 
    private ArrayList<String> arrangeList = new ArrayList<String>(); 
 
    public Test11() { 
    } 
    private void swap(String list[], int k, int i) { 
        String c3 = list[k]; 
        list[k] = list[i]; 
        list[i] = c3; 
    } 
 
    public void perm(String list[], int k, int m) { 
        if (k > m) { 
            StringBuffer sb = new StringBuffer(); 
            for (int i = 0; i <= m; i++) { 
                sb.append(list[i]).append(","); 
            } 
            if (sb.length() > 0) { 
                sb.setLength(sb.length() - 1); 
            } 
            arrangeList.add(sb.toString()); 
            total++; 
        } else { 
            for (int i = k; i <= m; i++) { 
                swap(list, k, i); 
                perm(list, k + 1, m); 
                swap(list, k, i); 
            } 
        } 
    } 
 
    public int getTotal() { 
        return total; 
    } 
 
    public ArrayList<String> getArrangeList() { 
        return arrangeList; 
    } 
 
    public static void main(String args[]) { 
        String list[] = { "1", "2", "3" }; 
        Test11 ts = new Test11(); 
        ts.perm(list, 0, list.length - 1); 
        for (int i = 0; i < ts.getArrangeList().size(); i++) { 
            System.out.println(ts.getArrangeList().get(i)); 
        } 
        System.out.println("total:" + ts.total); 
    } 

}
http://wgyblog.com
分享到:
评论

相关推荐

    JAVA递归实现全排列

    JAVA递归实现全排列算法,含实现源代码,如a、b、c、d的全排列为: abcd abdc acbd acdb adcb adbc bacd badc bcad bcda bdca bdac cbad cbda cabd cadb cdab cdba dbca dbac dcba dcab dacb dabc

    java全排列

    java实现全排列

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

    下面我们将深入探讨如何使用Java实现字符数组的全排列。 首先,我们需要了解回溯法。回溯法是一种试探性的解决问题方法,它尝试逐步找到问题的所有解。当发现某一步无法继续找到有效解时,会退回一步,尝试其他的...

    用java语言实现数字全排列

    题目描述:给定一个数列a1,a2,a3…an,输出他所有的全排列。 算法设计描述: 1、获取当前的一种排列,用start,end分别表示该排列的列头,列尾; 2、判断start是否和end相等,若相等,执行3,否则执行4; 3、将当前...

    Java 全排列

    Java 全排列算法实现,网上搜的,然后整理了一下。呵呵`````

    java递归实现N个数全排列输出

    在这个场景中,我们将探讨如何使用Java语言,通过回溯法来递归实现全排列的输出。 首先,我们需要理解回溯法的基本概念。回溯法是一种试探性的解决问题的方法,它尝试逐步构建解决方案,并在每一步中检查当前的解...

    利用中介数实现全排列算法

    利用中介数实现全排列算法,采用java实现。

    蓝桥杯java历年真题

    Java 实现全排列算法可以使用递归方法,通过将原数组分解为两个部分,一个是已经排列好的部分,另一个是还没有排列的部分。然后,对还没有排列的部分继续递归调用全排列算法,直到所有元素都被排列好为止。 2. 串的...

    java 递归,全排列

    java 递归,abcd全排列,非常简单的。

    全排列的Hash函数(JAVA)

    在Java中,实现全排列通常会用到递归或者回溯法。Hash函数在这里的作用是将当前的排列状态转换为一个唯一的键(key),然后存储到哈希表中。这样,当生成新的排列时,可以通过Hash函数快速判断这个排列是否已经出现...

    JAVA用递归实现全排列算法的示例代码

    "JAVA用递归实现全排列算法的示例代码" JAVA用递归实现全排列算法的示例代码主要介绍了JAVA用递归实现全排列算法的相关资料。全排列算法是一种经典的算法,在数学和计算机科学领域中有着广泛的应用。该算法的主要...

    全排列的非递归实现JAVA

    全排列的非递归实现。 输入1,2,3,4 得到 [1 2 3 4]..........[4 3 2 1]所有24种排列

    Java全排列算法字典序下的下一个排列讲解

    今天,我们将讨论如何使用Java实现全排列算法,并且讨论字典序下的下一个排列。 在讨论前,我们需要了解什么是全排列算法。全排列算法是一种算法,它可以将一个数组或集合中的所有元素排列成不同的顺序。例如,我们...

    全排列算法部分算法需要自己优化修改

    此外,还可以使用非递归的迭代方法,如“回溯栈”来实现全排列。这种方式避免了递归带来的栈空间消耗,但实现起来相对复杂,需要手动维护待处理的元素集合和当前排列状态。 总结,全排列算法主要通过递归或迭代实现...

    java 和 c# 不同的7个方法 实现 ABCD 全排列

    在Java和C#这两个广泛使用的编程语言中,有许多不同的方法可以实现全排列。接下来,我们将深入探讨这两种语言中实现ABCD全排列的7种方法。 1. **回溯法**: 回溯法是一种典型的递归策略,适用于解决约束满足问题。...

    java实现字符串的全排列

    "java实现字符串的全排列" java实现字符串的全排列是指通过编程语言java来生成一个字符串的所有可能排列。例如输入字符串abc,则输出所有可能的排列组合:abc,acb,bac,bca,cab和cba。 在java中,实现字符串的...

    全排列算法实现(java\c#\c++,各种主流语言版本)

    在本例中,我们将讨论如何使用递归方法实现全排列,以Java、C#、C++等主流编程语言为例。 全排列算法的核心思想是通过递归地交换元素来生成所有可能的序列。假设我们有一个包含n个不同元素的数组,全排列的数量是n...

    求1-8的所有全排列序列(java实现)

    利用换位法求小于9的所有全排列序列

    全排列和棋盘覆盖的java实现代码

    在Java中,我们可以使用递归的方式来实现全排列。递归的基本思路是,对于n个元素的全排列问题,我们先选择一个元素作为排列的第一个,然后对剩下的n-1个元素进行全排列。这样,每次递归调用都会解决规模更小的问题,...

    Java实现n位数字的全排列

    以下是一个Java实现n位数字全排列的示例代码: ```java public class Test { static int k = 0; public static void main(String[] args) { int a[] = {1, 2, 3, 4, 5}; // 定义一个n位数字数组 permutations...

Global site tag (gtag.js) - Google Analytics