当前位置: 编程技术>c/c++/嵌入式
排列组合总结:将结果进行输出的实现方法
来源: 互联网 发布时间:2014-10-13
本文导语: 全排列输出: 解法一: 代码如下:#include /* 递归思想: 取出数组第一个元素放到最后一个元素 即a[0] 和a[n]交换 然后一次递归a[n] 个元素的全排列 1 如果数组只有一个元素 n=1 a={1} 则全排列就是{1} 2 如果有两个元...
全排列输出:
解法一:
代码如下:
#include
/*
递归思想:
取出数组第一个元素放到最后一个元素 即a[0] 和a[n]交换 然后一次递归a[n] 个元素的全排列
1 如果数组只有一个元素 n=1 a={1} 则全排列就是{1}
2 如果有两个元素 n=2 a={1,2} 则全排列是
{2,1} a[1]与a[2]交换 交换后求a[2-1]={2}的全排列 归结到 1
{1,2} a[2]与a[2]交换 交换后求a[2-1]={1}的全排列 归结到 1
3 如果有三个元素 n=3 a={1,2,3} 则全排列是
{{2,3},1} a[1]和a[3]交换 交换后求a[3-1]={2,3} 的全排列 归结到 2
{{1,3},2} a[2] a[3] 交换 交换后求 a[3-1]={1,3} 的全排列 归结到 2
{1,2},3} a[3] a[3] 交换 交换后求 a[3-1]={1,2} 的全排列 归结到 2
*/
void swap(int a[],int size)
{
int i,t;
if(size==0)
{
for(i=0;i