c语言字符全排列数组,使用c语言递归实现字符串的全排列
一、介绍
递归两个基本要素:
1.边界条件(递归出口)
确定递归何时终止
2.递归模式(递归体)
大问题如何分解为小问题
二、递归实现字符串全排列
1.二话不说先上代码:
#include
#include
#include
void swap(char *str,int i,int j){
char c;
c = str[i];
str[i] = str[j];
str[j] = c;
}
void pernutation(char *str,int start,int end){
if(start
if(start+1 == end){ //每次
printf("打印全排列:%s\n",str);
return;
}else{
int i;
for(i=start;i
swap(str,start,i);//交换
printf("之前:%s,start:%d,i:%d\n",str,start,i);
pernutation(str,start+1,end);
swap(str,start,i);//回到之前的状态
printf("之后:%s,start:%d,i:%d\n",str);
printf("循环:%d\n",i);
}
}
}else{
printf("字符串长度不够!");
}
}
//主函数入口
int main()
{
char s[]="123"; //定义的字符串
pernutation(s,0,strlen(s));//调用递归函数
return 0;
}
2.运行结果
递归展示结果.png
三、分析
可见和栈是一样一样的。
四、总结
你现在所遭受的灾祸,都是你过去某个时间段慵懒所造成的。
c语言字符全排列数组,使用c语言递归实现字符串的全排列相关推荐
- C语言字符型数组ppt,C语言第13讲指针与字符串(字符数组).ppt
C语言第13讲指针与字符串(字符数组).ppt 6.2.3 指针与字符串(字符数组) C语言用字符数组存放字符串. 字符数组元素个数确定,一般用下标控制循环. 字符串有效字符个数由0确定,用结束符0控 ...
- c语言字符结构数组初始化,C语言结构体数组初始化问题
C语言结构体数组指定初始化器时,下面的三种方法,只有第三种可以,但是第一,二种,我看不出语法上哪错了,编译器DEVc++会报错 [Error] C99 designator 'num_insur' o ...
- C语言字符型PPT,《C语言字符串》PPT课件.ppt
<<C语言字符串>PPT课件.ppt>由会员分享,可在线阅读,更多相关<<C语言字符串>PPT课件.ppt(30页珍藏版)>请在装配图网上搜索. 1.A ...
- c语言字符型输入格式化,c语言之字符串和格式化输入输出
字符串和格式化输入输出 #include #include #define DENSITY 62.4 int main(void) { float weight, volume; int size, ...
- c语言字符函数isalpha,总结C语言字符检测函数:isalnum、isalpha...
前言:最近一直在刷leetcode的题,用到isalnum函数,用man手册查找了一下,总共有13个相关函数如下: #include int isalnum(int c); int isalpha(i ...
- c语言中二维数组怎么,c语言中什么是二维数组
c语言中什么是二维数组 二维数组A[m][n],这是一个m行,n列的二维数组.以下是由应届毕业生小编整理关于c语言二维数组的内容,希望对大家有所帮助!更多相关内容请关注应届毕业生考试 网. c语言的二 ...
- C语言 指针和数组区别 - C语言零基础入门教程
目录 一.前言 二.指针和数组区别 1.通过 sizeof 获取大小 a.计算数组大小 b.计算指针大小 2.指针和数组赋值方式不同 a.指针赋值 b.数组赋值 3.指针是指针变量,数组是指针常量 三 ...
- C语言 二维数组遍历 - C语言零基础入门教程
目录 一.计算一维数组长度 二.计算二维数组长度 1.二维数组行数 2.二维数组列数 3.二维数组的元素个数 = 二维数组行数 * 二维数组列数 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C ...
- c语言 二维数组 文库,c语言二维数组练习题
c语言二维数组练习题 (3页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 完成下列程序代码完成下列程序代码1. 将二维数组(5 行 5 ...
最新文章
- 网络流最大流 Dinic算法模板
- Windows Server 2008 使用WDS自动部署操作系统
- [搜索]波特词干(Porter Streamming)提取算法详解(1)
- iphone计算机快捷键,苹果电脑快捷键大全,最常用的都在这里了
- ARM 之六 Cortex-M 内核中断/异常系统、中断优先级/嵌套 详解
- centos 安装mysql时错误unknown variable #39;defaults-file=/opt/redmine-2.6.0-2/mysql/my.cnf#39;...
- 在linux中 要删除abc目录,操作系统原理与应用(linux)A卷
- 安卓依然是华为手机首选,鸿蒙系统或许不用于手机
- SHA256算法原理详解图
- java中数字循环嵌套举例,在Java程序中,复杂算法可以通过循环语句和的相互嵌套来实现。...
- Windows7 445端口漏洞
- 华三路由器双向NAT
- springboot项目在服务器怎么启动,springboot在服务器上启动的几种方式,亲测通过!...
- There was a problem confirming the ssl certificate: HTTPSConnectionPool(host=‘pypi.org‘,port=443)
- 模拟城市我是市长服务器维护多久,《模拟城市我是市长》你所走过的弯路 新手常见问题...
- Selenium 爬取评论数据,就是这么简单!
- Execl XSSFSheet 合并单元格读取
- MySQL 空间分析函数
- 【技术邻】搞热仿真离不开热电偶
- Linux中DNS服务器地址查询命令nslookup使用教程