#include <stdio.h>
int Swap(char *a,char *b)
{
char c;
c = *a;
*a = *b;
*b = c;
}
/*
* 递归思想实现选排,不可重复
*/
void Perm(char *list, int k, int m, int s)
{
//从list数组中k以后的子串中选排m个元素.s是总的选排个数
int i;
if(k == s || m == 0) {//已经选排完成,输出这个排列方式
for(i=0;i<s;i++)putchar(list[i]);
putchar('\n');
}
else
{
for (i=k; list[i]!='\0'; i++) {
Swap (&list[k], &list[i]);
Perm (list, k+1, m-1,s);//排列右子串
Swap (&list [k], &list [i]);
}
}
}
int main(int argc ,char *argv[])
{
char string[10] = "123";
Perm(string,0,2,2);
return 0;
}
分享到:
相关推荐
在C++中利用递归思想实现反序数
快速选择非递归与递归算法实现
分别用递归和非递归方法实现二分查找算法 的完整程序,indexof()返回的是循环实现的二分法查找,getindex()实现的是递归算法实现的二分法查找。
ackman函数的递归和非递归,学习数据结构的素材,非递归是使用堆栈实现的。
栈和递归的实现
本资源是数据结构中利用非递归法实现n皇后问题的一个C++代码,仅供参考,欢迎指正
C++递归课件 简单的递归思想 递归思想入门
java 用递归实现字符串反转 java 用递归实现字符串反转
递归方法实现斐波那契数列
第五章 函数与应用5.6递归思想和递归函数正确答案:B你选对了如果递归函数没有递归结束的语句,将会导致无穷递归,从而执行时出现“死循环”正确答案:2 3 6如下
VB6采用递归思想绘制树的源码:粗细、分叉等等
主要介绍了Python基于递归算法实现的走迷宫问题,结合迷宫问题简单分析了Python递归算法的定义与使用技巧,需要的朋友可以参考下
八皇后递归及非递归实现源码; 八皇后递归及非递归实现源码
本文实例讲述了C++使用递归和非递归算法实现的二叉树叶子节点个数计算方法。分享给大家供大家参考,具体如下: /*求二叉树叶子节点个数 -- 采用递归和非递归方法 经调试可运行源码及分析如下: ***/ #include #...
阿克曼函数非递归实现,用到了堆栈,对于学习数据结构的人来说很有用
一个Java小程序,利用递归思想实现的归并排序算法。其中有两个类,排序数据是写死在main方法中的。
数据结构DFS深度优先遍历非递归算法实现,是自己编写的,可靠。
c++语言的简单程序示例,通过递归方法求数组。
1、递归的特点 递归算法是一种直接或间接调用自身算法的过程,在计算机编程中,递归算法对解决一大类问题是十分,它往往使算法的描述简洁而且易于理解。 递归算法解决问题的特点: (1)递归就是在过程或函数里...
用递归实现C#树形结构 ,用递归实现C#树形结构 ,