递归实现全排列
Posted 没有梦想的小灰灰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归实现全排列相关的知识,希望对你有一定的参考价值。
#include <stdio.h> #include <string.h> static void swap(char* pchar1, char* pchar2) { //交换数组的两个数 char tmp = *pchar1; *pchar1 = *pchar2; *pchar2 = tmp; } void permutation(char* pchar, int begin, int length) { int i; if(begin == length) { //当只剩下一个元素时,打印数组 printf("%s\n", pchar); return; } for(i = begin; i <= length; i++) { swap(&pchar[begin], &pchar[i]); permutation(pchar, begin+1, length); swap(&pchar[begin], &pchar[i]); } } int main() { char arr[] = "abc"; permutation(arr, 0, strlen(arr)-1); }
以上是关于递归实现全排列的主要内容,如果未能解决你的问题,请参考以下文章