输出数组的全排列java_java用sort对一个数组排序

输出数组的全排列java_java用sort对一个数组排序packagetest;importjava.util.ArrayList;importjava.util.List;publicclass Test{staticList<int[]>allSorts=newArrayList<int[]>();publicstaticvoidpermutation(int[]nums,i…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

package test;
import java.util.ArrayList;
import java.util.List;

public class Test {
    static List<int[]> allSorts = new ArrayList<int[]>();
    public static void permutation(int[] nums, int start, int end) {
        if (start == end) { // 当只要求对数组中一个数字进行全排列时,只要就按该数组输出即可
            int[] newNums = new int[nums.length]; // 为新的排列创建一个数组容器
            for (int i=0; i<=end; i++) {
                newNums[i] = nums[i];
            }
            allSorts.add(newNums); // 将新的排列组合存放起来
        } else {
            for (int i=start; i<=end; i++) {
                int temp = nums[start]; // 交换数组第一个元素与后续的元素
                nums[start] = nums[i];
                nums[i] = temp;
                permutation(nums, start + 1, end); // 后续元素递归全排列
                nums[i] = nums[start]; // 将交换后的数组还原
                nums[start] = temp;
            }
        }
    }      
    public static void main(String[] args) {
        int[] numArray = {1, 2, 3, 4, 5, 6};
        permutation(numArray, 0, numArray.length - 1);
        int[][] a = new int[allSorts.size()][]; // 你要的二维数组a
        allSorts.toArray(a);
        // 打印验证
        for (int i=0; i<a.length; i++) {
            int[] nums = a[i];
            for (int j=0; j<nums.length; j++) {
                System.out.print(nums[j]);
            }
            System.out.println();
        }
        System.out.println(a.length);
    }
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/183145.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • JSP技术简介

    JSP技术简介1JSP技术的特征JSP技术所开发的web应用程序是基于Java的,它拥有Java跨平台的特性,以及业务代码分离,组建重用,基础Javaservlet功能和预编译功能。1)跨平台由于JSP是基于Java语言的,因而它可以使用Java的API,所以也是跨平台的,可以应用在Windows、Linux、Mac和Solaris。2)业务代码分离…

  • vb FindwindowEx的用法实例「建议收藏」

    vb FindwindowEx的用法实例「建议收藏」’添加Command1ConstWS_CHILD=&amp;H40000000ConstWM_LBUTTONDOWN=&amp;H201ConstWM_LBUTTONUP=&amp;H202ConstSW_HIDE=0ConstSW_NORMAL=1PrivateTypeRECT   LeftAsLong   TopAsLong   …

  • JavaFX Script语言教程「建议收藏」

    JavaFX Script语言教程「建议收藏」JavaFXScript™(下文中称为JavaFX)语言是一种声明式的静态类型编程语言。它具有第一级函数(first-classfunctions)、声明式的语法、列表推导(list-comprehensions)及基于依赖关系的增量式求值(incrementaldependency-basedevaluation)等特征。JavaFX脚本式语言特别适用于Java2Dswi…

  • ES集群搭建详细步骤[通俗易懂]

    ES集群搭建详细步骤[通俗易懂]@系统:*Centos6****ES版本:6.4.0服务器三台172.16.0.8172.16.0.6172.16.0.22部署jdk解压jdk放在/data目录,/data/jdk配置环境变量,/etc/proifle里面加入如下exportJAVA_HOME=/data/jdkexportPATH=$PATH:$JAVA_HOME/binexportCLASS…

    2022年10月13日
  • windows本地用户及组的区别「建议收藏」

    windows本地用户及组的区别「建议收藏」Administrators(超级管理员组)用来管理注册用户或者具有一定权限的其他管理员,维护网站的运行。Administrators中的用户对计算机/域有不受限制的完全访问权,分配给该组的默认权

  • ES6数组常用方法总结[通俗易懂]

    ES6数组常用方法总结[通俗易懂]这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Mar

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号