返回顶部
首页 > 资讯 > 精选 >java如何实现排列组合算法
  • 549
分享到

java如何实现排列组合算法

2023-06-03 01:06:54 549人浏览 安东尼
摘要

这篇文章主要介绍java如何实现排列组合算法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!java排列组合算法[@more@]import java.util.ArrayList;import j

这篇文章主要介绍java如何实现排列组合算法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

java排列组合算法[@more@]import java.util.ArrayList;import java.util.List;public class TestComposite {public static void main(String[] args) {// List allList = getFirstData();// List allList = getSecondData();List allList = getThirdData();List targetList = combinatePlan(allList);System.out.println(targetList);}private static List combinatePlan(List sourceList) {int[] subSizeArray;int[] subCountArray;int sourceCount = sourceList.size(); // 大list的长度subSizeArray = new int[sourceCount];subCountArray = new int[sourceCount];// 子list当前的值int targetCount = 1;for (int i = 0; i < sourceCount; i++) {List subList = (List) sourceList.get(i);int size = subList.size();subSizeArray[i] = size; // 存放每个子list的长度targetCount *= size; // 最终要返回的list长度subCountArray[i] = 0; // 从0开始 每个都是0// a.println("subCountArray[i]:"+subCountArray[i]);}List targetList = new ArrayList(targetCount);// targetCountfor (int i = 0; i < targetCount; i++) {// 记录每个结果应该包含的元素个数List targetSub = new ArrayList(sourceCount);for (int k = 0; k < sourceCount; k++) {int subIndex = subCountArray[k];targetSub.add(((List) sourceList.get(k)).get(subIndex));}addCount(subSizeArray, subCountArray);targetList.add(targetSub);}return targetList;}private static void addCount(int[] subSizeArray, int[] subCountArray) {// subCountArray数组的每个元素都是0 但是个数来记录循环要取的位置for (int i = subCountArray.length - 1; i >= 0; i--) {if (subCountArray[i] < subSizeArray[i] - 1) {subCountArray[i]++;return;} else {subCountArray[i] = 0;}}}private static List getFirstData(){List list1 = new ArrayList();list1.add("王一");list1.add("王二");list1.add("王三");List list2 = new ArrayList();list2.add("张一");list2.add("张二");list2.add("张三");List allList = new ArrayList();allList.add(list1);allList.add(list2);return allList;}private static List getSecondData(){List list1 = new ArrayList();list1.add("王一");list1.add("王二");List list2 = new ArrayList();list2.add("张一");list2.add("张二");List list3 = new ArrayList();list3.add("刘一");list3.add("刘二");List allList = new ArrayList();allList.add(list1);allList.add(list2);allList.add(list3);return allList;}private static List getThirdData(){List list1 = new ArrayList();list1.add("王一");list1.add("王二");List list2 = new ArrayList();list2.add("张一");List allList = new ArrayList();allList.add(list1);allList.add(list2);return allList;}}

以上是“java如何实现排列组合算法”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: java如何实现排列组合算法

本文链接: https://lsjlt.com/news/232027.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • java如何实现排列组合算法
    这篇文章主要介绍java如何实现排列组合算法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!java排列组合算法[@more@]import java.util.ArrayList;import j...
    99+
    2023-06-03
  • 如何用Java实现排列组合算法
    目录需求从排列到组合-穷举从排列到组合-分治分治思想代码实现直击本质-位运算思想代码实现小结需求 我们的数据表有多个维度,任意多个维度组合后进行 group by 可能会产生一些”奇...
    99+
    2024-04-02
  • java实现排列组合算法
    我这里只写了组合的算法。         假设现有 M=4 个数据 a,b,c,d。从中随机抽取n个数,n为1—4个数据进行组合。那么数学中的计算组合方式为C(4,1) + C(4,2) + C(4,3) + C(4,4)  = 4 + 6...
    99+
    2023-09-01
    排列组合 数据结构 java
  • Java算法如何实现全排列
    本篇内容主要讲解“Java算法如何实现全排列”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java算法如何实现全排列”吧!算法一基于递归与回溯实现。在排列1,2,3的时候,先由3向上回溯到2发现...
    99+
    2023-07-02
  • python 排列组合算法
    def c(n,m,out): if(m==0):    return 1 x=n while x>=m:    out.append(x)    if(c(x-1,m-1,...
    99+
    2023-01-31
    算法 排列组合 python
  • 基于python快速实现排列组合算法
    1.python语言简单、方便,其内部可以快速实现排列组合算法,下面做简单介绍、 2.一个列表数据任意组合 2.1主要是利用自带的库 #_*_ coding:utf-8 _*_ #__author__='dragon' impor...
    99+
    2023-01-31
    算法 排列组合 快速
  • c语言排列组合算法怎么实现
    C语言排列组合算法可以通过递归实现。下面是一个示例代码: #include <stdio.h> void combin...
    99+
    2024-02-29
    c语言
  • python如何实现列表元素排列组合
    这篇文章主要为大家展示了“python如何实现列表元素排列组合”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python如何实现列表元素排列组合”这篇文章吧。列...
    99+
    2024-04-02
  • 用python实现排列组合
    比如我们要实现1,2,3的排列组合,我们可以很容易写出来,如下表:     1个元素 2个元素 3个元素 不考虑顺序 123 1,2,3 12,13,23 123 考虑顺序 123 1,2,3, 12,21,13,31,23,32 12...
    99+
    2023-01-31
    排列组合 python
  • java全排列算法怎么实现
    以下是一种实现Java全排列算法的方法:```javaimport java.util.ArrayList;import java....
    99+
    2023-09-26
    java
  • 如何php数组排列组合
    在进行编程开发中,数组是一种非常常见和重要的数据类型。而排列组合则是数组处理中比较常见的操作,通过排列组合可以将数组中的元素按照不同的方式进行排列、组合,以达到不同的处理目的。在本文中,我们将重点讨论如何使用PHP编程语言实现数组的排列组合...
    99+
    2023-05-19
  • 利用Java如何实现全排列算法和递归
    利用Java如何实现全排列算法和递归?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。全排列:从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从...
    99+
    2023-05-31
    全排列 递归 ava
  • Java排序算法之堆排序如何实现
    这篇文章主要介绍了Java排序算法之堆排序如何实现,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性︰1.父结点的键值总...
    99+
    2023-06-21
  • Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例
    本文实例讲述了Python2.7基于笛卡尔积算法实现N个数组的排列组合运算。分享给大家供大家参考,具体如下: 说明:本人前段时间遇到的求n个数组的所有排列组合的问题,发现笛卡尔积算法可以解决,但是网上搜索的...
    99+
    2022-06-04
    笛卡尔 数组 示例
  • java如何实现快速排序算法
    这篇文章将为大家详细讲解有关java如何实现快速排序算法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。快速排序算法使用的分治法策略来把一个序列分为两个子序列来实现排序的思路:1.从数列中挑出一个元素,称为...
    99+
    2023-06-02
  • iOS中排列组合算法的使用小结
    前言 最近在项目中用到了排列组合计算,虽然比较简单,但是整个学习过程还是要记录下来的,以便以后可以吸取经验。 一般来说,排列组合就等于搜索。 注意点: 去重复:规定子集顺序必须升...
    99+
    2022-05-26
    ios 排列组合算法
  • Python通过内置函数和自写算法DFS实现排列组合
    目录调用内置函数自写算法DFS实现排列组合是数学中的一种常见的计算方法,用于求出从给定的元素中选取若干个元素的所有可能的排列或组合。在Python中,有多种方式可以实现排列组合的计算...
    99+
    2023-05-18
    Python 算法 Python 排列组合
  • Java排序算法之计数排序如何实现
    这篇文章主要为大家展示了“Java排序算法之计数排序如何实现”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java排序算法之计数排序如何实现”这篇文章吧。计数排序是非比较的排序算法,用辅助数组对...
    99+
    2023-06-21
  • Java算法之重新排列数组例题
    目录题目题目分析解题思路思路一思路二总结前言: 今天和大家分享一道简单,但是细节满满的算法题,其中一个思路反正我没有想到,但是很有用,分享出来希望对大家有帮助。 题目 给你一个数组 ...
    99+
    2024-04-02
  • Java实现全排列的三种算法详解
    目录算法一算法二算法三算法一 基于递归与回溯实现。在排列1,2,3的时候,先由3向上回溯到2发现没有其他可能的情况,再回溯到1,排列为1,3,2再向上回溯到存在其他情况时,即根节点然...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作