js实现排列组合算法(全排列)
【代码】js实现排列组合算法(全排列)
·

算法过程如图:
代码:
let func = (arr) => {
let len = arr.length
let res = [] // 所有排列结果
/**
* 【全排列算法】
* 说明:arrange用来对arr中的元素进行排列组合,将排列好的各个结果存在新数组中
* @param tempArr:排列好的元素
* @param leftArr:待排列元素
*/
let arrange = (tempArr, leftArr) => {
if (tempArr.length === len) { // 这里就是递归结束的地方
// res.push(tempArr) // 得到全排列的每个元素都是数组
res.push(tempArr.join('')) // 得到全排列的每个元素都是字符串
} else {
leftArr.forEach((item, index) => {
let temp = [].concat(leftArr)
temp.splice(index, 1)
// 此时,第一个参数是当前分离出的元素所在数组;第二个参数temp是传入的leftArr去掉第一个后的结果
arrange(tempArr.concat(item), temp) // 这里使用了递归
})
}
}
arrange([], arr)
return res
}
console.log('结果:', func(['A', 'B', 'C', 'D']))


转载于:https://blog.csdn.net/qq_32682301/article/details/108361463
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)