全排列問題(遞迴呼叫)

2021-07-25 06:57:38 字數 864 閱讀 4114

題目如下:

給乙個數字n,求1到n之間的數字的全排列。

input:

多組輸入,以eof結束

1<=n<=8

output:

對於每個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...