전체 순열 및 조합 알고리즘, 예를 들어 a, b, c, d가 완전히 순열 및 결합된 경우 조합 결과는 a, b, ab, c, ac, bc, abc, d, ad, bd, abd입니다. , CD, ACD, BCD, ABCD. 구현 아이디어: 데이터 소스에서 요소를 꺼내 기존 결합 데이터와 차례로 결합하고 데이터 소스에 데이터가 없을 때까지 위 작업을 반복합니다.
이 글에서는 주로 JS에서 구현한 완전 순열 및 조합 알고리즘을 소개합니다. 완전 순열 및 조합 알고리즘의 원리를 간략하게 설명하고, 완전 순열 및 조합 알고리즘의 구체적인 구현 기술을 예제 형식으로 제공합니다. 모두에게 도움이 되기를 바랍니다.
예:
데이터 소스 a, b, c
1. a를 꺼내면 결합된 데이터 그룹이 비어 있고, 데이터 소스 a 요소를 결합된 데이터 그룹에 삽입합니다. 이때 그룹=[a]
2. b를 꺼내서 데이터 그룹을 결합하여 a와 b를 결합합니다. 이때 결합된 데이터 그룹에 데이터 소스 b 요소를 삽입합니다. ab]
3. c를 꺼내서 데이터를 결합합니다. 그룹은 a, b, ab를 꺼내서 각각 c와 결합하여 각각 ac, bc, abc를 얻습니다. , abc 를 결합된 데이터 그룹에 넣습니다. 이때 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));
실행 결과:
관련 권장 사항:
JavaScript의 여러 비재귀 전체 순열 알고리즘 코드 예제에 대한 자세한 설명
JavaScript 재미있는 질문: 중복을 제거하기 위한 전체 순열
위 내용은 JS 완전순열 및 조합 알고리즘 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!