Java全排列筆記

2021-08-22 14:54:44 字數 599 閱讀 5365

/*

題目描述:輸入乙個字串,列印出該字串的所有排列。例如,輸入字串」abc」,則輸出有字元』a』,』b』,』c』所能排列出來的所有字串」abc」,」acb」,」bac」,」bca」,」cab」,」cba」。

思路解析:遞迴法

* 從集合中依次選出每乙個元素,作為排列的第乙個元素,然後對剩餘的元素進行全排列,如此遞迴處理,從而得到所有元素的全排列。

* 以對字串abc進行全排列為例,我們可以這麼做:

1)固定a,求後面bc的排列:abc,acb;

2)固定b,求後面ac的排列:bac,bca;

3)固定c,求後面ba的排列:cba,cab;

即遞迴樹:

str:    a       b        c

ab ac    ba bc     ca cb

result: abc acb bac bca  cab cba

*/public class main

public static void search(string s,string result,int len)

else}}

}}

java演算法筆記 全排列

全排列核心操作就是交換與遞迴 1 交換 交換遍歷到的兩個數,使第一次選出不同的數。2 遞迴進入下一層排列下一層,結束條件是方法的index指標等於arr.length 1時列印排列好的陣列,結束遞迴 3 再次交換第一步交換的兩個數,還原陣列狀態。回溯法 package 全排列 public clas...

全排列 Java實現

public static void permutation charss,int i if i ss.length 1 else 可以看到先是a和a交換了位置 相當於沒交換,但也算一種情況 然後進行遞迴呼叫,從注釋4可以看到i 1,可以想到遞迴呼叫裡面就會依據當前已經交換了的狀態 此處a與a交換 ...

java全排列演算法

遞迴全排列 以num 1,2,3,4,5 為例 1.f1 0,num 2.i 0 i 4遞迴到最後乙個元素,輸出1 2 3 4 5 3.i 4 i 3交換4 5,i 3 i 4,輸出1 2 3 5 4 4.i 4 i 3,5 4換回來,for迴圈完畢,返回上一層 5.i 3 i 2 交換3 4,i ...