递归实现全排列
2011-09-20 10:42
176 查看
//输入待排数组,cur=0,end为数组长度
void perm(int a[], int cur, int end)
{
int i = cur;
if (cur == end)
{
for (int j = 0; j < end; j++)
{
cout << a[j] << " ";
}
cout << endl;
}
while(i < end)
{
swap(a[i],a[cur]);//把a[i]拿出来放在前面,排列剩下的
perm(a, cur + 1, end);
swap(a[i], a[cur]);//排列好这次后记得把数组还原接着取出下一个放在前面
i++;
}
}
void perm(int a[], int cur, int end)
{
int i = cur;
if (cur == end)
{
for (int j = 0; j < end; j++)
{
cout << a[j] << " ";
}
cout << endl;
}
while(i < end)
{
swap(a[i],a[cur]);//把a[i]拿出来放在前面,排列剩下的
perm(a, cur + 1, end);
swap(a[i], a[cur]);//排列好这次后记得把数组还原接着取出下一个放在前面
i++;
}
}
相关文章推荐
- 用递归的方法实现全排列
- 求模(非递归)全排列算法——Javascript实现
- 递归实现全排列,关于凑算式实例
- 使用递归实现全排列
- 递归实现全排列
- 《Java数据结构与算法》笔记-CH6-递归-1递归实现全排列字符串
- 8.n个字符的全排列(递归实现)
- 全排列的递归与非递归实现
- python 利用递归实现全排列
- Java递归实现全排列
- C++递归实现全排列
- C++递归与非递归实现全排列
- 递归算法:将数据分为两部分,递归将数据从左侧移右侧实现全排列
- 算法设计与分析 全排列的递归实现算法
- C++全排列递归实现
- 用递归的方法实现全排列
- 递归实现全排列
- 非递归方法用栈实现全排列
- 简单全排列C递归实现 没考虑重复情况
- 使用递归实现数的全排列