js实现全排列组合算法
来源:互联网 发布:视频下载软件 vd 编辑:程序博客网 时间:2024/06/05 23:19
全排列组合算法,例如a,b,c,d进行全排列组合,则组合结果为:a,b,ab,c,ac,bc,abc,d,ad,bd,abd,cd,acd,bcd,abcd。实现思路:从数据源拿出一个元素,依次与已存在的组合数据进行组合,循环上面操作直到数据源没有数据为止。
例子:
数据源a,b,c
1.拿出a,组合数据group为空,插入数据源a元素到组合数据group,此时group=[a]
2.拿出b,组合数据group拿出a,a和b组合,得到ab,把数据源b元素、ab插入组合数据group,此时group=[a,b,ab]
3.拿出c,组合数据group拿出a、b、ab,分别与c组合,分别得到ac、bc、abc,把数据源c元素、ac、bc、abc插入组合数据group,此时group=[a,b,ab,c,ac,bc,abc]
js代码:
var data = ['a','b','c','d'];function getGroup(data, index = 0, group = []) {var need_apply = new Array();need_apply.push(data[index]);for(var i = 0; i < group.length; i++) {need_apply.push(group[i] + data[index]);}group.push.apply(group, need_apply);if(index + 1 >= data.length) return group;else return getGroup(data, index + 1, group);}console.log(getGroup(data));运行输出结果:
[ 'a', 'b', 'ab', 'c', 'ac', 'bc', 'abc', 'd', 'ad', 'bd', 'abd', 'cd', 'acd', 'bcd', 'abcd' ]
阅读全文
0 0
- js实现全排列组合算法
- 排列组合算法实现--基于JS
- 关于全排列组合算法
- java 实现全排列组合
- 算法基础:排列组合问题-全排列(Golang实现)
- js 实现排列组合
- C#实现排列组合算法
- 排列组合算法实现
- Java实现排列组合算法
- 算法练习:排列组合之全排列
- 字符数组全排列组合算法汇总
- js实现重复的排列组合
- 【转】JAVA实现排列组合算法
- VB.NET 排列组合算法实现
- 排列组合算法的递归实现
- java排列组合算法代码实现
- java排列组合算法代码实现
- 排列组合算法的实现代码
- 使用Windows API PostThreadMessage进行线程间消息通信
- OSD&FileStore之CompatSet
- LeetCode6. ZigZag Conversion
- 字符串工具类StringUtils
- BZOJ 1116 [POI 2008] 并查集 解题报告
- js实现全排列组合算法
- 广播的使用
- XCode9新功能官方文档翻译
- 最全最强SpringMVC详细示例实战教程
- 解决CentOS7 无法启动mysql 的解决办法
- Something Interesting
- EXT4 之superblock 结构体剖析
- 11_ARM汇编自学笔记指令系统之程序状态寄存器访问指令
- 物理DG常用维护