45fan.com - 路饭网
首页
路由器设置
无线路由器
路由器密码
网络频道
手机频道
电脑频道
图库频道
问答中心
搜索:
智能搜索
搜索标题
您的位置
:
主页
>
网络频道
> 阅读资讯:回溯法打印方法介绍
回溯法打印方法介绍
2016-09-01 07:26:08 来源:www.45fan.com 【
大
中
小
】
回溯法打印方法介绍
一个全排列的递归算法,非常的简洁,转载自天极网
#include
<
stdio.h
>
void
print_it(
int
n,
int
arr[]);
void
arrange_all(
int
size,
int
arr[],
int
pos);
int
main()
...
{
int
a[
5
]
=
...
{
1
,
2
,
3
,
4
,
5
}
;
arrange_all(
5
,a,
0
);
return
0
;
}
/**/
/*
函数名:voidarrange_all(intsize,intarr[],intpos)
描述:打印所有排列
参数:
size要排列的数据个数
arr[]排列存放的数组
pos当前排列位置
*/
void
arrange_all(
int
size,
int
arr[],
int
pos)
...
{
int
i,tmp;
if
(pos
+
1
==
size)
/**/
/*
如果已经排到最后
*/
...
{
print_it(size,arr);
/**/
/*
打印数组
*/
return
;
}
for
(i
=
pos;i
<
size;i
++
)
/**/
/*
对当前位置后的所有位置排列
*/
...
{
tmp
=
arr[pos];
/**/
/*
交换位置
*/
arr[pos]
=
arr[i];
arr[i]
=
tmp;
/**/
/*
递归,继续后面的调用
*/
arrange_all(size,arr,pos
+
1
);
/**/
/*
在交换回来,保持原有的排列次序
*/
tmp
=
arr[pos];
arr[pos]
=
arr[i];
arr[i]
=
tmp;
}
}
void
print_it(
int
n,
int
arr[])
...
{
int
i;
static
int
cnt
=
0
;
printf(
"
%04d:
"
,
++
cnt);
for
(i
=
0
;i
<
n;i
++
)
printf(
"
%2d
"
,arr[i]);
printf(
"
"
);
}
本文地址:
http://www.45fan.com/a/question/70637.html
Tags:
打印
排列
回溯
编辑:路饭网
上一篇:
制作Linux自启动光盘的方法
下一篇:
Java学习笔记之中文字符初步解决方案的内容分析
相关文章列表
解决爱普生1390打印机清零错误的步骤
处理打印机无法打印识别识别硒鼓的方法
用打印机快速打印图片在纸上的方法
处理打印机不能双面打印的步骤
在asp.net下打印页面的技巧
怎么样通过asp.net实现打印功能代码?
处理打印机故障的方法
Domino中通用的视图打印的方法
Quickreport万能打印程序的详细介绍
C#与打印机的故事的详细介绍
推广内容
推荐阅读
热门推荐
推荐文章
·
欢乐颂五美晒合照 齐呼:We are back!!
·
Google AdSense广告业务也被干扰,掉包严
·
京东和淘宝二者对比有什么区别?
·
输入新浪微博的验证码老是错误怎么办?
·
google adsense打不开怎么办?免翻墙打开
·
在淘宝网买东西要注意哪些事项?网友必备
·
阿里提供免费公共DNS服,阿里公共dns地址
·
如何进行小米真人认证?小米官方真人认证
·
怎么用PS制作出真实的眼睛?
·
招财宝有什么作用?招财宝不仅仅是余额宝
·
路饭网官方微信公众平台开通啦!赶快扫描
·
路由器连接检测工具 检测电脑上不了网的
关于我们
|
联系我们
|
友情链接
|
网站地图
|
Sitemap
|
App
|
返回顶部