C 實現全排列

2021-10-12 10:51:54 字數 980 閱讀 4677

給定乙個陣列,求這個陣列的全排列。

列如:a=,對陣列a求全排列

結題思路:

將a陣列中的元素依次放在第乙個位置然,對剩下的元素進行全排列。剩下元素全排列依然是,將剩下的元素依次放在第乙個位置,對剩下的元素進行全排列。直到剩下的元素個數為乙個時,排列結束。

這裡我給出固定元素1,對元素2、3、4進行全排列的一種情況,其他情況類似

//從第k位到第m位全排列

//還有多個元素待排列,遞迴產生排列

for(

int i = k; i <= m; i++)}

intmain()

;perm

(list,0,

2);// 0,2表示0號元素到2號元素做全排列

return0;

}對於這段核心****:

其中的變數:i始終是要換到第乙個位置的元素的下標,變數:k是第乙個位置元素的下標

for

(int i = k; i <= m; i++

)

結果:

遞迴過程確實比較難理解,大家可以在excel表中畫一下遞迴過程,這樣有助於大家理解整個過程!!!

C 實現全排列

總時間限制 1000ms 記憶體限制 65536kb 描述給定乙個由不同的小寫字母組成的字串,輸出這個字串的所有全排列。我們假設對於小寫字母有 a b y z 而且給定的字串中的字母已經按照從小到大的順序排列。輸入輸入只有一行,是乙個由不同的小寫字母組成的字串,已知字串的長度在1到6之間。輸出輸出這...

全排列的實現(C)

找工作,筆試經常會出現乙個題,怎樣生成乙個集合內所有元素的全排列。剛開始的時候沒有覺得這是乙個難的問題。其實,當寫在試卷上,真的不太會,作答的過程感覺心裡沒有什麼底。回來後,查了一些資料,看了一些書,對這個問題有一定的認識,舉乙個例去清晰一下題目的意思,例子為 字符集的全排列 123,132,312...

全排列(遞迴) C 實現

給定乙個由不同的小寫字母組成的字串,輸出這個字串的所有全排列。我們假設對於小寫字母有 a b y z 而且給定的字串中的字母已經按照從小到大的順序排列。輸入只有一行,是乙個由不同的小寫字母組成的字串,已知字串的長度在1到6之間。輸出這個字串的所有排列方式,每行乙個排列。要求字母序比較小的排列在前面。...