部分排列 迭代写法

来源:互联网 发布:帝国cms整合ck播放器 编辑:程序博客网 时间:2024/06/06 16:34

之前面试的一道题,貌似我的方法简单些,嘎嘎:

#include "stdio.h"#include "string.h"void Exchange(char* pStr,int i,int j){char temp = pStr[i];pStr[i] = pStr[j];pStr[j] = temp;}void DoPermute(char* pStr, int k, int n){int len = strlen(pStr);if (k == n){for (int i=0; i < k;++i){printf("%c",pStr[i]);}printf("\n");}else{for (int i=k; i < len; ++i){Exchange(pStr,i,k);DoPermute(pStr,k+1,n);Exchange(pStr,i,k);}}}void RecursivePermute(char* pStr,int n){DoPermute(pStr,0,n);}int main(){char temp[] = "abcde";RecursivePermute(temp,3);}


原创粉丝点击