C語言 演算法 遞迴 全排列

2021-08-20 03:41:55 字數 861 閱讀 2913

描述

給定乙個由不同的小寫字母組成的字串,輸出這個字串的所有全排列。 我們假設對於小寫字母有'a' < 'b' < ... < 'y' < 'z',而且給定的字串中的字母已經按照從小到大的順序排列。

輸入輸入只有一行,是乙個由不同的小寫字母組成的字串,已知字串的長度在1到6之間。

輸出輸出這個字串的所有排列方式,每行乙個排列。要求字母序比較小的排列在前面。字母序如下定義:

已知s = s

1s2...s

k , t = t

1t2...t

k,則s < t 等價於,存在p (1 <= p <= k),使得 s

1 = t

1, s

2 = t

2, ..., s

p - 1 = t

p - 1, s

p< t

p成立。

樣例輸入

abc

樣例輸出

abc

acbbac

bcacab

cba

解題思路:對輸入字元進行全排列輸出,即對輸入的字串陣列的輸出序號進行排列。

**:#include #include void array(int ,char *,int);

char input[6]=;

int n[6]=;

int main()

void array(int len, char *p ,int num){

int i,j,count;

if(num==len){ \\當輸出的順序排列完成時按此順序輸出

for(i=0;i

全排列 C語言 遞迴

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

全排列遞迴演算法

全排列是將一組數按一定順序進行排列,如果這組數有n個,那麼全排列數為n 個。現以為 例說明如何編寫全排列的遞迴演算法。1 首先看最後兩個數4,5。它們的全排列為4 5和5 4,即以4開頭的5的全排列和以5開頭的4的全排列。由於乙個數的全排列就是其本身,從而得到以上結果。2 再看後三個數3,4,5。它...

全排列(遞迴演算法)

一 全排列演算法 從n個不同元素中任取m m n 個元素,按照一定的順序排列起來,叫做從n個不同元素中取出m個元素的乙個排列。當m n時所有的排列情況叫全排列。公式 全排列數f n n 定義0 1 演算法 遞迴演算法 網路上偷了乙個圖 全排列 順便複習乙個數學公式 排列的定義 從n個不同元素中,任取...