首頁  >  文章  >  web前端  >  JS全排列組合演算法實作方法

JS全排列組合演算法實作方法

小云云
小云云原創
2018-01-27 11:20:006295瀏覽

全排列組合演算法,例如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,組合資料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));

執行輸出結果:

相關推薦:

JavaScript幾種非遞歸全排列演算法程式碼實例詳解

php全排列遞迴演算法範例程式碼

#JavaScript趣題:全排列去重

#

以上是JS全排列組合演算法實作方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn