遞迴實現n個不同字元的所有全排列

2021-07-11 19:22:15 字數 386 閱讀 7310

設str是含有n個不同字元的陣列例如含123,perm(str,k,n)為str[k]~str[n-1]的所有字元全排序輸出函式。很明顯,perm(str,k+1,n)處理的字元個數比perm(str,k,n)處理的字元個數少乙個。假定perm(str,k+1,n)可求,對於第k個位置可以任取k~n-1內任意元素作為str[k],再組合perm(str,k+1,n)得到perm(str,k,n)。

由此建立遞迴模型:

if k==n-1   輸出str

else        任取k~n-1內任意元素作為str[k]+perm(str,k+1,n)

void perm(int a,int k,int n){

int i,j;

if(k==n-1){for(i=0;i

遞迴演算法求n個不同字元的所有全排序列

設str是含有n個不同字元的陣列例如12345,perm str,k,n 為str 0 str k 的所有字元全排序輸出函式,n為str陣列字元個數。以此類推,perm str,k 1,n 處理的字元個數比perm str,k,n 處理的字元個數少乙個。假定perm str,k 1,n 可求,對於第...

用遞迴實現從M個不同字元中選取N個字元的所有組合

以前做過類似字串的題目,當時覺得字串也能用遞迴來做非常神奇,後來思考了下,覺得只要抓住字串是由乙個個字元組成的,從第乙個字元到最後乙個字元每乙個都可以作為一次遞迴,把index作為引數傳進去就行,以這種思想為指導才把此題解了出來。對於每個字元只有兩種情況,設當前字串指標為x,目標字串指標為y get...

對n個不同字母的全排列

public class liang public static boolean visit new boolean str.length public static char result new char str.length public static int total 0 public s...