java二维数组合并_二维数组交叉组合算法

一、名词解释

1、多维:描述一个实体的不同属性,如:颜色、尺寸、价格

2、散列:每个属性有多个属性值,且数量不一

4、分组:对属性值进行组合,不可出现完全相同组合,且每组数量必须等于属性个数,用来表明一个唯一实体

3、交叉组合:每个属性中分别取值进行组合,顺序不受限制,必须保证每种可能性都有出现

4、原子:每个属性中具体值

二、变量定义说明

1、原子的出现次数 = $times

2、属性值个数 = $valCount

3、属性个数 = $attrCount

4、最长分组数 = $groupCount

5、出现最多次原子,的出现次数 = $maxTimes

6、组 = $group

6、组集合 = $groups

三、算法分析

1、原子出现次数$times;计算方式,连乘(数学表达式大约是这样):∏$times = a1 * a2 * …… * an

2、随意取,原子出现次数$maxTimes,及其对应属性的值个数$valCount

3、计算,分组总数$groupCount = $times  $valCount

4、递归进行列填充

1)首列填充,每个属性值按照出现次数填充新的列表

2)其他列填充,分别针对其后面所有列表组合过程中出现次数计算,及分组数计算

5、重组完成最终分组。

1)遍历首列,取相应下标值&#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值