首页 > 编程语言 > 详细

全排列(递归算法实现)

时间:2020-07-01 19:26:32      阅读:48      评论:0      收藏:0      [点我收藏+]

没啥好说的,理解了递归部分就一切OK

 

 

//全排列即n!
#include<iostream>
using namespace std;

void swap(int a[] , int i , int j)
{
int temp;
temp=a[i];
a[i]=a[j];
a[j]=temp;

}

 

void func(int a[] , int k , int m)
//k指第几个确定的数
{

if(k==m)//确定到最后一个数
{
for(int i=0;i<=m;i++)
cout<<a[i]<<" ";
cout<<endl;
}
else{
for(int i=k;i<=m;i++)
//初始k=0,意味着a[0]和所有数都进行交换
{
swap(a,i,k);
func(a,k+1,m);
swap(a,i,k);
}
}
}
int main(){
int a[]={1,2,3};
func(a,0,2);
//数组长度为2
}

全排列(递归算法实现)

原文:https://www.cnblogs.com/ywrxjry/p/13220741.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!