Chinaunix首页 | 论坛 | 博客
  • 博客访问: 20281
  • 博文数量: 17
  • 博客积分: 730
  • 博客等级: 军士长
  • 技术积分: 175
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-24 12:09
文章分类

全部博文(17)

文章存档

2010年(17)

我的朋友
最近访客

分类: C/C++

2010-01-24 13:35:19

void swap(int *a,int *b){
int c;
c=*a;
*a=*b;
*b=c;
}

void range(int *a,int beg_p,int end_p){
int i=0;
/*-----------------------------------------------------------------
 *递归的终点,到这个时候,只有一个元素的全排列,此时候,不用了,直接
 *输出所有的元素,完成本次任务。
 *-----------------------------------------------------------------*/
if(beg_p == end_p){
for(i=0;i
printf("%d,",a[i]);
}
else{
for(i=beg_p;i
/*------------------------------------------------------------------
 *此处,可以理解为,第一个位置,可以由开头开始,到结尾的任何一个元素
 *而,递归的时候,返回的是从下个位置起到尾的排列
 *-------------------------------------------------------------------*/
swap(&a[i],&a[beg_p]);
range(a,i+1,end_p);
}
}
}
阅读(297) | 评论(0) | 转发(0) |
0

上一篇:棋盘填充

下一篇:计算0~9任一数平方

给主人留下些什么吧!~~