排列组合,其实是试探双方,也称回溯算法
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编写的数组的全排列程序 如一个数组 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递归实现全排列算法,含实现源代码,如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
全排列的非递归实现。 输入1,2,3,4 得到 [1 2 3 4]..........[4 3 2 1]所有24种排列
NULL 博文链接:https://128kj.iteye.com/blog/1699795
主要介绍了Java实现字符数组全排列的方法,涉及Java针对字符数组的遍历及排序算法的实现技巧,需要的朋友可以参考下
全排列算法
今天小编就为大家分享一篇关于Java全排列字典序下的下一个排列,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
全排列算法: 比如字符串abc,全排列结果为abc,acb,bac,bca,cba,cab。
java 递归,abcd全排列,非常简单的。
主要介绍了JAVA用递归实现全排列算法的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
主要介绍了Java基于递归解决全排列问题算法,结合实例形式分析了Java使用递归算法解决全排列问题的原理与具体实现技巧,需要的朋友可以参考下
题目描述:给定一个数列a1,a2,a3…an,输出他所有的全排列。 算法设计描述: 1、获取当前的一种排列,用start,end分别表示该排列的列头,列尾; 2、判断start是否和end相等,若相等,执行3,否则执行4; 3、将当前...
只用了一维长度为9的数组 全排列问题可以看做简化规则的八皇后问题噢!!
Java写的源码,解决各种字符串全排列问题,已解决重复问题,经过上机调试可直接运行
用回溯法递归实现的输出N的全排列 如 123 132 。。。。
java算法分析与设计之全排列问题源代码 算法作为计算机专业学生的必修课,同时也是软件开发过程中必备的编程思想,对学习研究计算机专业意义重大;正因为这门课程难,所以除了相关方面的书籍,网络资源少的可怜,尤其...
利用换位法求小于9的所有全排列序列
计算重复元素的全排列。以文本文件的形式存储和输入输出。