21xrx.com
2025-06-23 01:20:19 Monday
文章检索 我的文章 写文章
C++递归实现全排列代码
2023-07-03 09:52:35 深夜i     43     0
C++ 递归 全排列 代码

全排列是指将一组数据进行排列组合,使用递归方法可以很方便地实现全排列算法。在C++中,递归实现全排列的代码如下:

#include<iostream>
using namespace std;
void perm(int list[],int head,int tail)//递归函数
{
  if(tail==head)
  {
    for(int i=0;i<=tail;i++)
      cout<<list[i]<<" ";
    cout<<endl;
  }
  else
    for(int j=head;j<=tail;j++)
    {
      swap(list[j],list[head]);
      perm(list,head+1,tail);
      swap(list[j],list[head]);
    }
}
int main()
{
  int list[3]=2;
  perm(list,0,2);
  return 0;
}

在代码中,perm()函数是递归实现全排列的核心。它的参数包括一个数组、头指针和尾指针。若头指针等于尾指针,则将数组中的数据按顺序输出;否则遍历头指针到尾指针之间的每个数,将它们依次放到头指针的位置,再对剩下的数进行全排列。经过递归,最后输出所有的排列组合。

在主函数中,先初始化一个长度为3的数组,然后调用perm()函数进行全排列。运行程序,就可以看到输出的所有排列组合。

  
  

评论区