題目如下:
給乙個數字n,求1到n之間的數字的全排列。
input:
多組輸入,以eof結束output:1<=n<=8
對於每個n,輸出1到n的全排列sample input: sample output:按字典序輸出全排列
每個排列一行
相鄰兩個數字之間隔乙個空格
1 2 3思路如下:1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
每一組解都填在陣列中,cur表示當前狀態,cur == n為遞迴邊界,每遞迴一次都在陣列中填乙個數,利用1~n的迴圈可以用字典序排列。
**:
#include
void print_permutation(int a, int n, int cur)
else
for (i = 1; i <= n; i++)
}}int main()
return
0;}
ps:
該題的理解對於初學者來說難度不小,建議在紙上手算模擬。
Openjudge 全排列(遞迴呼叫)
全排列 總時間限制 1000ms 記憶體限制 65536kb 描述 給定乙個由不同的小寫字母組成的字串,輸出這個字串的所有全排列。我們假設對於小寫字母有 a b y z 而且給定的字串中的字母已經按照從小到大的順序排列。輸入 輸入只有一行,是乙個由不同的小寫字母組成的字串,已知字串的長度在1到6之間...
全排列問題(遞迴)
上次上課老師講了全排列演算法,現在剛剛看自己的寫的全排列演算法,看了好一會才看懂。應該是自己理解的不夠徹底 所以今天徹徹底底的來分析一下 先看圖 思路 先固定乙個字元,然後將固定的字元與它後面的每乙個進行交換,一直遞迴下去,直到固定的字元後面只有乙個字元 我們先看看圖,框外面的字元是被固定的字元,框...
遞迴求解全排列問題
遞迴求解全排列問題 求解思想 排列中每乙個數字,都有一次當最前單一綴的機會,例如 排列陣列 a 1.當a中只有1個數字的時候,a 1 則只有1個數字做單一字首和字尾,則只有一種 1!1 可能 a1,直接輸出 2.當a中只有2個數字的時候,a 2 則a1,a2分別有一次機會做單一字首的機會,2!2 3...