c++实现数字的全排列

原创 2016年08月31日 11:44:17
#include <iostream>
#include <vector>
using namespace std;


void recursivePrint(vector<char> number,int length,int index)
{
        if(index == length - 1)
        {
                for(int i = 0 ; i < length; ++i)
                        cout << number[i] ;
                cout << endl;
                return;
        }
        for(int i = 0; i < 10; ++i)
        {
                number[index + 1] = i + '0';
                recursivePrint(number,length,index + 1); 
        }
}


void printFullSortNumbers(int n)
{
        if(n == 0)
                return ;
        vector<char> res(n+1,'0');
        for(int i = 0; i < 10; i ++) 
        {
                res[0] = i +'0';
                recursivePrint(res,n,0);
        }
}


int main()
{
        int a = 2;
        printFullSortNumbers(a);
        return 0;
}

第二种方法,其实跟上面类似


#include <iostream>
using namespace std;
void printRecurve(int a[],int len,int k)
{
        if(len  == k)
        {
                for(int i = 0; i <= len; ++i)
                        cout << a[i] ;
                cout <<endl;
        }
        else
        {
                for(int idx = k ; idx <= len; ++idx)
                {
                        swap(a[idx],a[k ]); 
                        printRecurve(a,len,k + 1); 
                        swap(a[idx],a[k]);
                }
        }
}
int main()
{
        int b[3] = {1,2,3};
        printRecurve(b,2,0);
        return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

全排列的java实现(含重复数字)

题目原型: Given a collection of numbers that might contain duplicates, return all possible unique perm...

PHP对于若干数字全排列/全组合的实现一例

以体彩11选5为例,共计11个数字,实现11个数字任3的全排列/全组合。 定义数组$balls = array('01','02','03','04','05','06','07',...

C++递归实现全排列

实现全排列是递归的一个初级应用,主要思想就是,通过每次遍历输出一个结果。 下面的函数实现的效果就是输入一组字符,输出以‘,’分隔的全排列,最多10个,如果有空格或换行,则提前结束。//Permuta...

算法题目一:全排列(C++实现)

代码实现参考自CSDN的牛人http://my.csdn.net/MoreWindows的文章:http://blog.csdn.net/morewindows/article/details/737...

全排列的递归和非递归实现(permutation)(C++)

全排列问题具体问题描述和思路请参考这篇文章: http://blog.csdn.net/morewindows/article/details/7370155/以下是C++代码实现://Permut...

全排列算法及其C++实现

不论是哪种全排列生成算法,都遵循着“原排列”→“原中介数”→“新中介数”→“新排列”的过程。其中中介数依据算法的不同会的到递增进位制数和递减进位制数。关于排列和中介数的一一对应性的证明我们不做讨论,这...

全排列算法c++实现

//最大整数法实现: #include using namespace std; //step1: 找出最大活动整数m以及下标 int fun(int a[], int b[], int n) { ...
  • sgzqc
  • sgzqc
  • 2015-03-05 11:17
  • 429

使用set实现的一种简单的全排列算法(C++语言)

本算法的思想十分简单。

九度OJ 1120 全排列 -- 实现C++STL中next_permutation()

题目地址:http://ac.jobdu.com/problem.php?pid=1120 题目描述: 给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 我们假设对于小写字母有...
  • JDPlus
  • JDPlus
  • 2014-03-02 11:25
  • 1940

C++n个数全排列的算法

  • 2007-10-17 10:44
  • 505B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)