- 浏览: 72704 次
- 性别:
- 来自: 北京
递归算法---字符串---全/部分组合和全排列
- 博客分类:
- 嵌入式
#include <stdio.h> #include <string.h> void combine(char *src, char *out,int rec, int start, int end) { int i; if(start==end) return; for(i=start;i<end;i++){ out[rec]=src[i]; out[rec+1]='\0'; printf("%s\n",out); combine(src,out,rec+1,i+1,end); } } int main(int argc, char *argv[]) { int len=strlen(argv[1]); char out[len]; combine(argv[1],out,0,0,len); return 0; }
/** *从字符串中取出n个的组合 */ #include <stdio.h> #include <string.h> void combine(char *src,char *out,int start,int rec,int end, int n) { int i; if(n>end) n=end; for(i=start;i<end;i++){ out[rec]=src[i]; if(n==1){ out[rec+1]='\0'; printf("%s\n",out); }else { combine(src,out,i+1,rec+1,end,n-1); } } } int main(int argc, char *argv[]) { char out[strlen(argv[1])]; combine(argv[1],out,0,0,strlen(argv[1]),atoi(argv[2])); return 0; }
#include <stdio.h> #include <string.h> void arrange(char *src,int start,int end) { int i; char tmp; if(start==end){ printf("%s\n",src); } for(i=start;i<end;i++){ tmp=src[start];src[start]=src[i];src[i]=tmp; arrange(src,start+1,end); tmp=src[start];src[start]=src[i];src[i]=tmp; } } int main(int argc, char *argv[]) { arrange(argv[1],0,strlen(argv[1])); return 0; }
发表评论
-
排序算法---计数排序
2011-11-27 14:57 556#include <stdio.h> vo ... -
排序算法---归并排序
2011-11-26 19:33 697#include <stdio.h> vo ... -
排序算法---交换排序(冒泡排序、快速排序)
2011-11-26 19:32 665#include <stdio.h> vo ... -
排序算法---选择排序(简单插入排序、堆排序)
2011-11-26 19:31 598#include <stdio.h> vo ... -
排序算法---插入排序(简单排序、shell排序)
2011-11-26 19:29 601#include <stdio.h> vo ... -
删除字符串中的特定字符和重复字符
2011-11-26 13:45 630#include <stdio.h> vo ... -
Linux编程-多线程、同步和互斥(转载)
2011-11-14 15:27 1151http://www.cnblogs.com/skynet/a ... -
寻找字符串中的最大数字子串
2011-09-22 17:17 1471#include <stdio.h> int f ... -
删除子字符串
2011-09-21 15:27 562#include <stdio.h> #incl ... -
c语言随机数
2011-09-18 17:15 655#include <stdio.h> #i ... -
带头结点有序单链表的合并
2011-09-08 14:21 1143typedef int Item; typedef s ... -
链表逆序的递归/非递归算法
2011-09-01 23:37 1357/** *链表逆序的递归/非递归算法 */ # ... -
递归算法---0-1背包问题(面试宝典)
2011-08-28 21:11 1853/** *正整数n,m,从数列1、2、3、...、n中随 ... -
递归算法---字符串全组合(面试宝典)
2011-08-28 17:24 1210/** *求一字符串所有字串的组合 */ #i ... -
递归算法---求解多元一次方程
2011-08-28 10:38 1860/** * 求解x1+x2+x3+...+x10 = ... -
(zz)关于类的sizeof
2011-08-27 18:16 524http://blog.sina.com.cn/s/blog_ ... -
(zz)结构体字节对齐原则
2011-08-27 17:53 1548结构体默认的字节对齐一般满足三个准则: 结构体变量的首 ... -
list.h from linux-2.4
2011-08-25 09:59 569#ifndef _LIST_H_ #define _L ... -
The C Programming Lang (K&R) hash table
2011-08-25 09:52 900hash.h #include <stdio.h ... -
Josephus环
2011-08-23 11:20 660/*************************** ...
相关推荐
汉诺塔递归算法: 问题抽象 3个塔,n个碟子 初始:所有碟子放在1号塔,大的在底下,小的在上面 任务:把碟子移动到2号塔,顺序不变, 可用3号塔辅助 限制 每次只能移动一个碟子 总是大碟子...
实验2 递归算法-源代码.rar
C递归算法-八皇后问题.doc
第6章 函数和递归(C++版) 第二节 递归算法-2021-01-25(B).pdf
基础算法-递归-杨鑫20191010.pptx,基础算法-递归-杨鑫20191010.pptx,基础算法-递归-杨鑫20191010.pptx
算法-基础算法- 递归算法(包含源程序).rar
这个程序绝对绝对能够加深对递归算法的理解。 并且对理解随机数的产生有帮助。另外还实现了全排列。
java 用递归实现字符串反转 java 用递归实现字符串反转
2------前序遍历递归算法 3------前序遍历非递归算法 4------中序遍历递归算法 5------中序遍历非递归算法 6------后序遍历递归算法 7------后序遍历非递归算法 8------求树高 9------求叶子总数 10-----输出二叉树 ...
NOIP基础算法--枚举、递推和递归 很有用的哦,看看有好处的
字符串逆序 使用递归算法来实现字符串逆序_C语言实现
java语法 method 递归 马克-to-win java视频 方法 重载
《数据结构与算法》-李春葆 实验报告-递归算法实践-n皇后问题
其实排列实现了,组合也就实现了,组合C(N,R)就是P(N,R)/P(R,R) ,实现这一功能比较简单的是递归算法,但考虑到递归的性能,下面采用了2种非递归的方法,具体代码如下 using System; using System.Collections....
排列的递归算法(递归求*排列*),很简洁。
c++实现的关于递归实现逆序字符串,有需要的可以下载
递归求算排列算法;递归求算排列算法;递归求算排列算法;
文件递归-XML递归-树图递归 面试中的常见递归算法:附带截图和详细代码
递归算法详细分析- C.doc