`
cy729215495
  • 浏览: 129221 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

java 全排列

阅读更多
排列组合,其实是试探双方,也称回溯算法
package com.test;

public class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        int[] a = { 1, 2, 3, 4,5,6 };
        test(a, 0);

    }

    private static void test(int[] a, int index) {
        if (index == a.length) {
            if(a[2]==4)return;
            else{
                for (int i = 0; i < a.length; i++) {
                     if(i!=a.length-1){
                         if((a[i]==5&&a[i+1]==3)||(a[i]==3&&a[i+1]==5))
                             return;
                         
                     }
                }
                
                for (int i = 0; i < a.length; i++) {
                    System.out.print(a[i] + " ");
                }
                System.out.println();
                return;
            }
            
        }
        for (int i = index; i < a.length; i++) {

            swap(a, index, i);
            test(a, index + 1);
            swap(a, i, index);
        }

    }

    private static void swap(int[] a, int i, int j) {
        int temp = a[i];
        a[i] = a[j];
        a[j] = temp;

    }

}
分享到:
评论

相关推荐

    Java 全排列

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

    java全排列

    java实现全排列

    Java 数组的全排列问题

    这是一个Java编写的数组的全排列程序 如一个数组 a,b,c,d 它的全排列为: a b c d a b d c a c b d a c d b a d b c a d c b b a c d b a d c b c a d b c d a b d a c b d c a ……

    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

    全排列的Hash函数(JAVA)

    标题中的“全排列的Hash函数(JAVA)”指的是在Java编程中使用Hash函数处理全排列问题。全排列是指从n个不同元素中取出m个元素,按照一定的顺序排列起来的所有可能的排列方式。在这个场景下,Hash函数通常用于快速查找...

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

    Java全排列算法字典序下的下一个排列讲解 在计算机科学中,全排列算法是一种非常重要的算法,它可以将一个数组或集合中的所有元素排列成不同的顺序。今天,我们将讨论如何使用Java实现全排列算法,并且讨论字典序下...

    全排列的非递归实现JAVA

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

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

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

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

    全排列算法是计算机科学中一个基础且重要的问题,它涉及到数组或序列的所有可能的线性排列方式。在处理这个问题时,我们通常会采用递归或迭代的方式来实现。下面将详细介绍全排列算法及其优化方法。 全排列算法的...

    彻底理解全排列算法

    全排列算法: 比如字符串abc,全排列结果为abc,acb,bac,bca,cba,cab。

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

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

    java 递归,全排列

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

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

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

    Java基于递归解决全排列问题算法示例

    Java基于递归解决全排列问题算法示例 全排列问题是指对一个集合中的元素进行全排列的操作,例如,对于集合{1, 2, 3},其全排列为{1, 2, 3}、{1, 3, 2}、{2, 1, 3}、{2, 3, 1}、{3, 1, 2}、{3, 2, 1}。在Java中,...

    用java语言实现数字全排列

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

    Java编写八皇后与全排列只差三个字符

    只用了一维长度为9的数组 全排列问题可以看做简化规则的八皇后问题噢!!

    Java_字符串全排列大全_(已解决重复问题)

    Java写的源码,解决各种字符串全排列问题,已解决重复问题,经过上机调试可直接运行

    java算法分析与设计之全排列问题源代码

    java算法分析与设计之全排列问题源代码 算法作为计算机专业学生的必修课,同时也是软件开发过程中必备的编程思想,对学习研究计算机专业意义重大;正因为这门课程难,所以除了相关方面的书籍,网络资源少的可怜,尤其...

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

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

    重复元素全排列

    在Java中实现重复元素全排列,通常采用递归的方法。核心思想是通过交换元素的位置来生成不同的排列组合,并检查每次交换是否产生了一个新的、未被记录的排列。为了避免重复计算,可以使用一个辅助函数`Judge()`来...

Global site tag (gtag.js) - Google Analytics