简单全排列C递归实现 没考虑重复情况
2010-12-20 19:43
253 查看
#include <stdio.h> #define MAX 100 int len, sum; char list[MAX]; static int perm(int k, int m); static int swap(int i, int j); int main() { scanf("%s",list); len = strlen(list); sum = perm(0, len-1);//not include '/n' printf("sum = %d/n", sum); return 0; } static int perm(int k, int m) { int i; if(k == len-2) { for(i = 0; i<= m; i++) { printf("%c", list[i]); } sum++; printf("/n"); } for(i = k; i <= m; i++) { swap(k, i); perm(k+1, m); swap(k, i);//回溯 } return sum; } static int swap(int i, int j) { char temp; temp = list[i]; list[i] = list[j]; list[j] = temp; return 0; }
相关文章推荐
- 简单全排列C递归实现 没考虑重复情况
- 全排列实现(递归,去重复,字典排序,stl实现)
- 简单说明什么是递归?什么情况会使用?并使用Java实现一个简单的递归程序。
- 非递归实现不重复序列的全排列(一)
- 非递归实现不重复序列的全排列(一)
- 非递归实现不重复序列的全排列(二)
- [C++]数据结构实验01:使用递归实现简单的全排列
- 递归解决输出一个字符串的全排列问题(缺陷:没有考虑字符串中字符重复的问题)
- 非递归实现不重复序列的全排列(二)
- 用MASM写一个简单的实现递归操作的汇编程序,所谓递归,上课已经跟大家说清楚了,如果我们只考虑简单的只分一次的递
- 面试题------全排列的非递归和递归实现(含重复元素)
- 非递归实现不重复序列的全排列(三)
- 非递归实现不重复序列的全排列(三)
- 考虑最复杂的情况,开发出最简单的实现
- 全排列的简单递归方法(有重复元素和无重复元素的递归算法)
- 非递归实现不重复序列的全排列(三)
- 递归实现全排列(可包含重复元素)
- php 简单实现无限递归分类
- 【读书笔记】HeadFirst设计模式——单件不简单:详述实现Singleton模式需要考虑的方方面面
- 递归实现全排列