>웹 프론트엔드 >JS 튜토리얼 >JS 완전순열 및 조합 알고리즘 구현 방법

JS 완전순열 및 조합 알고리즘 구현 방법

小云云
小云云원래의
2018-01-27 11:20:006484검색

전체 순열 및 조합 알고리즘, 예를 들어 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의 여러 비재귀 전체 순열 알고리즘 코드 예제에 대한 자세한 설명

php 전체 순열 재귀 알고리즘 샘플 코드

JavaScript 재미있는 질문: 중복을 제거하기 위한 전체 순열

위 내용은 JS 완전순열 및 조합 알고리즘 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.