排列-做法2

  • 71
  • 0

參考:http://www.csie.ntnu.edu.tw/~u91029/Backtracking.html
裡面的 Enumerate Permutations  做法

該資料的做法:
給定長度,來產生 index 的排列組合

例:給定長度為3,就會產生以下的內容
0 1 2
0 2 1
1 0 2
1 2 0
2 0 1
2 1 0

背後的原理:
backtrack(0)  開始進行處理
0 可以想成目前處理到的 index 位置

針對每個 index 來抓出可使用的值
被取用過的值就會標記為 used = true
所以可以在每個 index 處理時,抓出不重複的值

再利用 Recursive  的做法逐步處理 index+1 的部份
等處理到 index=length 時就進行該次排列結果的輸出
全部處理完,就會得到所有排列的結果~!!

小弟修改為可對輸入的資料進行排列
GitHub連結: https://github.com/ragnakuei/PermutationRecursive