输出数组的全排列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);
    }
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • lucene通过tokenstream显示分词信息「建议收藏」

    lucene通过tokenstream显示分词信息「建议收藏」publicclassAnalyzerUtil{ publicstaticvoidmain(String[]args){ StandardAnalyzersa=newStandardAnalyzer(Version.LUCENE_45); Stringstr=”Iamcomefromjiangxifengchengtongtian.thisi

    2022年7月22日
    10
  • sql里declare_oracle declare语法

    sql里declare_oracle declare语法DECLARE为sql中的关键字,主要用于申明变量。本文简单介绍了其使用方法,主要为一般变量的申明和查看和表变量的使用和查看。

    2022年8月20日
    8
  • js ajax 跨域问题 解决方案[通俗易懂]

    js ajax 跨域问题 解决方案[通俗易懂]什么是跨域问题?跨域问题来源于JavaScript的”同源策略”,即只有协议+主机名+端口号(如存在)相同,则允许相互访问。也就是说JavaScript只能访问和操作自己域下的资源,不能访问和操作其他域下的资源。跨域问题是针对JS和ajax的,html本身没有跨域问题。查看浏览器开发者工具Console报错:Failedtoloadhttp://a.a.com:8080/A/FromServlet?userName=123:No’Access-Control-Allow-Origi.

    2022年8月24日
    9
  • mysql截取数字_mysql 截取字符串中的数字

    mysql截取数字_mysql 截取字符串中的数字展开全部selectREVERSE(right(REVERSE(filename),length(filename)-LEAST(if(Locate(‘0’,REVERSE(filename))>0,Locate(‘0’,REVERSE(filename)),999),if(Locate(‘1’,REVERSE(filename))>0,Locate(‘1’,REVERSE(f…

    2022年6月3日
    91
  • linux 编译汇编,linux下的汇编教程

    linux 编译汇编,linux下的汇编教程linux下的汇编教程第一部分Linux下ARM汇编语法尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作ARM的协处理器等。初始化完成后就可以跳转到C代码执行。需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点(www.gnu.org)上下载有关规范。一.Linux汇编行结构任何汇编行都是如下结构…

    2022年6月22日
    63
  • 三天实现独立分析宏基因组数据(有参、无参和分箱等)[通俗易懂]

    三天实现独立分析宏基因组数据(有参、无参和分箱等)[通俗易懂]在广大粉丝的期待下,《生信宝典》联合《宏基因组》在2019年11月1-3日,北京鼓楼推出《宏基因组分析》专题培训第六期,为大家提供一条走进生信大门的捷径、为同行提供一个宏基因组分析学习和…

    2022年6月3日
    70

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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