全排列 C語言 遞迴

2021-10-04 14:26:50 字數 1211 閱讀 7688

description

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

input

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

output

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

已知s = s1s2…sk , t = t1t2…tk,則s < t 等價於,存在p (1 <= p <= k),使得s1 = t1, s2 = t2, …, sp - 1 = tp - 1, sp < tp成立。

sample input

abc

sample output

abc

acbbac

bcacab

cba

#include

#include

void

qsort

(int s)

;//遞迴排序

void

sort

(char str,

int n)

;//氣泡排序

bool ls[15]

;int n;

//設定bool型別的陣列,0對應該字母沒有用到,1表示已經用了

char str[15]

,temp[15]

;int

main()

void

qsort

(int s)

int i;

for( i=

0;i(ls[i]==0

)//用bool型別對應字母的狀態,0表示字母沒有被用到,即可以使用

}void

sort

(char str,

int n)

//氣泡排序,從小到大排

}

C語言 演算法 遞迴 全排列

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

C語言 全排列的遞迴寫法

作為計算機小白 部落格內容暫為學習總結 僅供讀者參考 a題時用到了全排列,不會寫,就學了一種 遞迴法全排列 模仿深搜的遞迴標記思想,每獲得一種排列方式,存入一種方式,由於是全排列 時間複雜度較高。include int base 15 mark 15 cache 15 res int 1e7 15 ...

46 全排列 全排列 遞迴

遞迴的時候每次確定乙個位置的數字 nums陣列在遞迴過程中分為左右兩部分,左邊部分是已經確定好的部分,而右邊是待確定數字的部分。每次都嘗試用當前位置右邊的數字來交換當前數字以確定當前數字。題目可以使用collections來優化。詳見 class solution 遞迴過程中每次確定乙個位置的數,遞...