`
leichenlei
  • 浏览: 125529 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

获得数组全部排列组合

 
阅读更多

 

出处:http://blog.csdn.net/justinavril/article/details/4181354

 

 

public class AllSort{    
    public static void main(String[] args) {    
        char buf[]={'a','b','c'};    
  
        perm(buf,0,buf.length-1);    
    }    
    public static void perm(char[] buf,int start,int end){    
        if(start==end){//当只要求对数组中一个字母进行全排列时,只要就按该数组输出即可    
            for(int i=0;i<=end;i++){    
                System.out.print(buf[i]);    
            }    
            System.out.println();       
        }    
        else{//多个字母全排列    
            for(int i=start;i<=end;i++){    
                char temp=buf[start];//交换数组第一个元素与后续的元素    
                buf[start]=buf[i];    
                buf[i]=temp;    
                    
                perm(buf,start+1,end);//后续元素递归全排列    
                    
                temp=buf[start];//将交换后的数组还原    
                buf[start]=buf[i];    
                buf[i]=temp;    
            }    
        }    
    }    
}  

 

 

分享到:
评论

相关推荐

    php求数组全排列,元素所有组合的方法

    本文实例讲述了php求数组全排列,元素所有组合的方法。分享给大家供大家参考,具体如下: &lt;?php $source = array('pll','我','爱','你','嘿'); sort($source); //保证初始数组是有序的 $last = count($source) - ...

    Java获得一个数组的指定长度排列组合算法示例

    主要介绍了Java获得一个数组的指定长度排列组合算法,结合实例形式分析了java排列组合相关数组遍历、运算操作技巧,需要的朋友可以参考下

    permutation:用于处理数组排列的小型库

    要遍历数组中所有可能的值组合,请使用 ArrayPermuter $ array = new ArrayPermuter ([ 1 , 2 , 3 ]); $ array -&gt; walk ( function ( $ permutation ){ // do something }); 执照 版权所有 (c) 2015 Jon Håvard ...

    javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号.docx

    * 排列组合的概念 * 全排列的生成方法 * 从小到大生成 push 数组的方法 * 使用函数 getAll() 来计算每一位比当前小的可能性总数 * 使用 JavaScript 的一些特性,例如 split() 方法和 join() 方法 * 使用 console.log...

    javascript算法题:求任意一个1-9位不重复的N位数在该组合中的大小排列序号

     首先看到题目想到的是生成一个从少到大的全排列的数组,然后再遍历数组得到对应的序号(数组下标加1),又或者想到一个个从小到大的生成push进数组,然后判断该数是不是当前题目给的数,如果是的话要求的序号就是...

    permutation-way:置换算法与 Steinhaus-Johnson-Trotter 算法与 Even 加速

    您可以将任何对象的排列组合到数组中。 如果你想获得复杂对象的排列,你应该提供一个比较器函数。例子宣言模块permutation-way有一个函数: permutationOf( inputArray[, comparator][, options] ) 。 参数在哪里...

    三种排序算法主要过程图示

    3. 将每个位的排序结果组合起来,得到最终的排序结果。 基数排序的时间复杂度为O(nk),其中n为待排序数组的大小,k为元素的位数。基数排序适用于元素的位数较小的情况。 桶排序 桶排序是一种分布式排序算法,通过...

    matlab常用函数总结.

    列出所有组合情况,combntns;可以用命令perms得到排列;生成范特蒙德行列式vander(V);得到数组中不相同元素length(unique(A)) ;阶乘factorial(N) 等众多matlab常用函数总结

    计算机二级C语言上机考试——结构体与链表.pdf

    结构体是C语言中的一种数据类型,用于组合多个变量,链表是一种动态数据结构,用于存储和操作数据。 1. 计算学生的平均分:在这个问题中,需要编写一个函数,计算一个学生的平均分,并将其存储在记录的ave成员中。...

    24点游戏的c++算法实现

    给4个整数,只用加减乘除,得出所有能得到24的算法 //基本思想是用3个运算符和4个数的排列组合进行穷举 //为了实现循环,自定义了4个运算符,并放入函数数组中

    javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号

    输出:[123(1) , 132(2) , 213(3) , 231(4) , 312(5) , 321(6)]—&gt;X=2 首先看到题目想到的是生成一个从少到大的全排列的数组,然后再遍历数组得到对应的序号(数组下标加1),又或者想到一个个从小到大的生成push进...

    Excel VBA实用技巧大全 附书源码

    03040按工作表名称重新排列工作表 03041选定工作表 03042激活工作表 03043显示选定工作表的快捷菜单 03044删除工作表级的定义名称 03045删除图表工作表 03046显示、隐藏行列标题 04001通过Range属性引用某个单元格 ...

    第5章搜索与回溯算法C++版 .ppt

    搜索与回溯算法的应用场景非常广泛,例如迷宫问题、旅行商问题、八皇后问题、排列组合问题等等。这些问题都可以使用搜索与回溯算法来解决。 在 C++ 中实现搜索与回溯算法可以使用递归函数,例如: ```c int Search...

    Data-Structures-and-Algorithms-in-[removed]用JavaScript实现的数据结构和算法

    合并排序数组合并两个排序的链表检查单链表是否是回文在原处反转字符串(以字符数组形式输入) 最小堆栈(堆栈DS,在恒定时间O(1)中获得堆栈的最小值) 重复排列在二叉搜索树中搜索有效字谜从二进制链接列表中获取...

    计算机二级公共基础知识

    “有序”是特指元素按非递减排列,即从小到大排列,但允许相邻元素相等。下一节排序中,有序的含义也是如此。 对于长度为n的有序线性表,利用二分法查找元素X的过程如下: 步骤1:将X与线性表的中间项比较; 步骤2:...

    leetcode双人赛-practise:实践

    排列组合唯一和非唯一元素 尝试 二分查找 数组和字符串 回文,字谜 字符串子串,子序列,最大窗口,最小窗口 最长递增子数组、子序列 队列和堆栈 动态规划 斐波那契进化解 背包,零钱 购买股票的最佳时机,抢房者,...

Global site tag (gtag.js) - Google Analytics