標籤:mystra 編程演算法 全排列 代碼 c
字串的排列 代碼(C)
本文地址: http://blog.csdn.net/caroline_wendy
題目: 輸入一個字串, 列印出該字串中字元的所有排列.
方法: 使用遞迴依次交換位置, 列印輸出.
代碼:
/* * main.cpp * * Created on: 2014.6.12 * Author: Spike *//*eclipse cdt, gcc 4.8.1*/#include <stdio.h>void Permutation(char* pStr, char* pBegin);void Permutation(char* pStr){ if(pStr == NULL) return; Permutation(pStr, pStr);}void Permutation(char* pStr, char* pBegin){ if(*pBegin == ‘\0‘) { printf("%s\n", pStr); } else { for(char* pCh = pBegin; *pCh != ‘\0‘; ++ pCh) { char temp = *pCh; *pCh = *pBegin; *pBegin = temp; Permutation(pStr, pBegin + 1); temp = *pCh; *pCh = *pBegin; *pBegin = temp; } }}void Test(char* pStr){ if(pStr == NULL) printf("Test for NULL begins:\n"); else printf("Test for %s begins:\n", pStr); Permutation(pStr); printf("\n");}int main(void){ char str[] = "abc"; Test(str); return 0;}
輸出:
Test for abc begins:abcacbbacbcacbacab