幾種全排列的演算法 C語言實現

2021-08-31 14:05:33 字數 634 閱讀 1283

/* 

* 幾種排列組合的演算法

*/#includeint a[20];

int n;

//列印陣列

void showarray(int *a)

//翻轉法

void overturn()

if(max==0)

break;

//交換位置和方向

temp=b[max];

b[max]=b[max+dir[max]];

b[max+dir[max]]=temp;

temp1=dir[max+dir[max]];

dir[max+dir[max]]=dir[max];

dir[max]=temp1;

//改變比活結點大的數的方向

for(i=1;i<=n;i++)

if(b[i]>temp)

dir[i]=-dir[i];

showarray(b); }}

//序數法(排出的序列為有序的)

//str:待排序的字串行 n:首字元下標 len:字串長度

void ordinal(char * str,int n,int len)

}void main()

C語言實現全排列演算法

題目 輸入乙個字串,列印出該字串中字元的所有排列。例如輸入字串abc,則輸出由字元a b c 所能排列出來的所有字串 abc acb bac bca cab 和cba。includeusing namespace std void permutation char pstr,char pbegin ...

全排列 (C語言實現)

題目 輸入乙個字串,列印出該字串中字元的所有排列。例如輸入字串abc,則輸出由字元a b c 所能排列出來的所有字串 abc acb bac bca cab 和cba。一 遞迴實現 從集合中依次選出每乙個元素,作為排列的第乙個元素,然後對剩餘的元素進行全排列,如此遞迴處理,從而得到所有元素的全排列。...

全排列的演算法與C語言實現

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