21xrx.com
2024-12-22 21:59:05 Sunday
登录
文章检索 我的文章 写文章
C++递归实现全排列代码
2023-07-03 09:52:35 深夜i     --     --
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()函数进行全排列。运行程序,就可以看到输出的所有排列组合。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复