`

算法:全排列

 
阅读更多
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Demo {

    private List<String> ITEM = Arrays.asList("1", "2", "3", "4", "5", "6", "7", "8", "9");

    private int SIZE = 9;

    public void array() {
        List<String> data = new ArrayList<String>();
        array(data, ITEM, "");
    }

    public void array(List<String> data, List<String> item, String prefix) {

        if (prefix.length() == SIZE) {
            data.add(prefix);
            return;
        }

        for (int i = 0; i < item.size(); i++) {

            List<String> tmp = new ArrayList<String>(item);

            array(data, tmp, prefix + tmp.remove(i));
        }
    }
}

 

分享到:
评论

相关推荐

    算法实践:全排列(递归)

    全排列是一种经典的算法问题,它涉及到了排列组合与递归的思想。给定一个字符串,全排列的任务是找出所有可能的字符顺序,其中每个字符都恰好出现一次。在本例中,字符串仅包含小写字母,并且长度在2到8之间。 解决...

    组合数学全排列算法(转)

    根据提供的信息来看,实际文章内容并未直接包含关于组合数学中的全排列算法的详细解析,而是主要介绍了清华大学计算机科学与技术系的一些活动与新生入学情况。不过,既然题目要求围绕组合数学中的全排列算法进行展开...

    全排列算法C语言超简洁

    自己写的基于字符的全排列算法,代码简洁,高效,7位数的全排列都是秒排!用到了广度优先排列,深度优先搜索和几个递归,唯一没完成的是退出时释放内存,呵呵,破解密码时超有用的哟,,

    彻底理解全排列算法

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

    常见算法介绍、算法刷题(含解析与代码).rar

    常见算法介绍 排序算法 冒泡排序 选择排序 插入排序 归并排序 快速排序 搜索算法 线性搜索 二分搜索 ...贪心算法 回溯算法 算法刷题 排序算法题目 ...搜索算法题目 ...贪心算法题目 ...题目1:全排列 题目2:子集

    全排列算法

    全排列算法是计算机科学中一个重要的算法,主要应用于数据处理、搜索优化以及组合问题等领域。在编程中,全排列通常是指从给定的n个不同元素中,按照一定的顺序取出所有可能的排列组合。这种算法涉及到的主要知识点...

    常见数据结构与算法C语言实现

    # 常见数据结构与算法C语言实现 内容包含常见基本数据结构实现(C语言版)如各自排序、...- 递归:全排列 - 01背包问题 - 八皇后问题 - 求平方根 - 最大公约数 - 最小公倍数 - KMP算法 - 前缀中缀求后缀 - 哈密顿环

    组合数学中的全排列生成算法

    组合数学中的全排列生成算法是解决数学问题和编程挑战中不可或缺的部分,特别是在处理组合和排列问题时。全排列指的是从n个不同元素中取出n个元素的所有可能排列方式。在这个问题中,我们将探讨六种常用的全排列生成...

    全排列的算法 翻转法 换位法 字典序法

    全排列是计算机科学中一种常见的问题,特别是在组合数学和算法设计中有着广泛的应用。它指的是从n个不同的元素中,不重复地选取n个元素,并按照一定的顺序排列出来。本篇将详细介绍三种解决全排列问题的算法:翻转法...

    一种计算全排列的简易算法

    在计算机科学中,全排列算法经常用于解决各种排列组合的问题,比如测试用例的生成、数据排序等。 在给定的标题“一种计算全排列的简易算法”中,我们可以推测这是一种简化版的全排列算法实现。全排列算法通常有多种...

    FullPermutation_java_算法_全排列_

    全排列是计算机科学中一种常见的算法问题,主要应用于数据处理、搜索优化以及组合数学等领域。在Java编程中,实现全排列通常涉及到递归或回溯等技术。本篇将详细介绍两种常用的Java方法来解决全排列问题,并探讨相关...

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

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

    全排列算法解析(完整版)

    全排列算法广泛应用于程序设计中,尤其是在需要穷举所有可能性的场合,比如组合数学、游戏设计、密码学等领域。 在C或C++中实现全排列算法,主要的思想是递归。基本步骤是首先固定第一个元素,然后对剩余的n-1个...

    全排列算法 全排列算法 (c#版)

    全排列算法是计算机科学中一个基础且重要的概念,特别是在算法设计和分析中。它涉及到将一个给定的有限序列的所有可能的元素排列情况进行列举。在C#编程语言中,实现全排列算法可以帮助开发者解决多种问题,例如组合...

    全排列算法 实例 一种实现了n个数全排列的算法

    全排列算法是计算机科学中一个基础且重要的概念,主要用于生成一组数据的所有可能的排列组合。在实际应用中,它常用于解决各种优化问题、搜索问题和组合数学问题。本实例将详细阐述一种实现n个数全排列的算法。 ...

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

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

    C#算法之全排列递归算法实例讲解

    全排列:当n==m时,称为全排列; 比如:集合{ 1,2,3}的全排列为: 代码如下: { 1 2 3} { 1 3 2 } { 2 1 3 } { 2 3 1 } { 3 2 1 } { 3 1 2 } 我们可以将这个排列问题画成图形表示,即排列枚举树,比如下图为{1,2,3}...

    四种权威全排列生成算法.docx

    本篇文章将详细介绍四种权威全排列生成算法,包括基于中介数、相邻排列特征、递增进位制数法和递减进位制数法的方法。 1. 基于中介数的全排列算法: 这种方法通常用于生成字典序排列。在`Zidian1_1`和`Zidian1_2`...

    全排列的各种算法

    ### 全排列的各种算法 全排列的生成算法主要关注如何有效地枚举出针对特定字符集的所有可能排列方式,且确保这些排列既不重复也不遗漏。本文档将详细介绍四种经典的全排列算法:字典序法、递增进位制数法、递减进位...

Global site tag (gtag.js) - Google Analytics