递归实现全排列算法 c++描述

硅谷探秘者 5068 0 1

递归实现全排列算法 c++描述

#include<iostream>
using namespace std;
//交换
void exchange(int *a,int i,int j){
    if(i==j){
        return ;
    }else{
        *(a+i)=*(a+i)+*(a+j);
        *(a+j)=*(a+i)-*(a+j);
        *(a+i)=*(a+i)-*(a+j);
    }
}
//递归函数
void re(int *a,int k,int m){ 
    if(k==m){
        for(int i=0;i<=m;i++){
            cout<<*(a+i)<<" ";
        }
        cout<<endl;
    }else{
        for(int i=k;i<=m;i++){
            exchange(a,k,i);//交换
            re(a,k+1,m);//递归
            exchange(a,i,k);//交换回来
        }
    }
}
//主函数
int main(){
    int a[]={1,2,3,4};
    re(a,0,3);
    return 1;
}


QQ截图20181129225258.png





评论区
请写下您的评论...
暂无评论...
猜你喜欢
数据结构与算法 4600 合并两增链表-合并后保持增序java数据结构:单链表链表节点packageclub.test;/****链表节点*@authorjiajia
ofc
official 906 :[1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]解题思路,具体用语言不好,具体请看代码。代码(java)classSo
java虚拟机(jvm) 5995 1.内部名在许多情况下,一种类型只能是类或接口类型。例如,一个类的超类、由一个类的接口,或者由一个方抛出的异常就不能是基元类型或数组类型,必须是类或接口类型。这些类型在已编译类中用内部名字表示
数据结构与算法 3033 简单单链表的增删改查c++classnode{public:intdata;node*next;};#include"node.h"usingnamespacestd;classstack
数据结构与算法 2487 简单双向链表得增删改查c++classnode{public:intdata;node*next;node*prev;};#include"node.h"classrelink
数据结构与算法 3190 链式栈的出栈入栈操作c++基于双向链表//节点classnode{public:intdata;node*next;node*prev;};//双向链表#include"node.h
数据结构与算法 1513 思想该使用,思路为:每次将待序数组在中间位置分成左右两组,分别对左右两个数组进行序,的条件是数组长度必须大于等于3,所以当数组中只有两个数据的时候可以直接进行比较
数据结构与算法 1716 思想将待序集合以该集合中随机的一个数为分界点分成左右两个集合,一次序使其右边的集合的数据部大于左边的集合,然后再分别式的对左右两个集合执行上序操作,直到集合没有数据,结束完
归档
2018-11  12 2018-12  33 2019-01  28 2019-02  28 2019-03  32 2019-04  27 2019-05  33 2019-06  6 2019-07  12 2019-08  12 2019-09  21 2019-10  8 2019-11  15 2019-12  25 2020-01  9 2020-02  5 2020-03  16 2020-04  4 2020-06  1 2020-07  7 2020-08  13 2020-09  9 2020-10  5 2020-12  3 2021-01  1 2021-02  5 2021-03  7 2021-04  4 2021-05  4 2021-06  1 2021-07  7 2021-08  2 2021-09  8 2021-10  9 2021-11  16 2021-12  14 2022-01  7 2022-05  1 2022-08  3 2022-09  2 2022-10  2 2022-12  5 2023-01  3 2023-02  1 2023-03  4 2023-04  2 2023-06  3 2023-07  4 2023-08  1 2023-10  1 2024-02  1 2024-03  1 2024-04  1 2024-08  1
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo vue 导入导出 软件使用 idea插件 协议 无聊的知识 jenkins springboot mqtt协议 keepalived minio mysql ensp 网络基础 xxl-job rabbitmq haproxy srs 音视频 webrtc javascript 加密算法
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。