21xrx.com
2024-11-22 07:00:07 Friday
登录
文章检索 我的文章 写文章
C++语言全排列代码
2023-07-08 19:43:43 深夜i     --     --
C++ 全排列 代码

C++是一门非常流行的编程语言,其语法简单易懂,功能强大,能够满足多种编程需求。在编程中,全排列算法是一个非常常见的问题。这里我们将介绍使用C++语言实现全排列算法的代码。

全排列算法是一种将一组元素按照从小到大的顺序排列的方法。在C++中,可以使用递归实现全排列算法。递归算法指的是函数在执行到某个条件时,会调用自身递归执行。下面是C++语言的全排列算法代码:


#include <iostream>

#include <vector>

using namespace std;

void permute(vector<int> nums, int l, int r){

  if (l == r){

    for (auto x: nums)

      cout<<x<<" ";

    

    cout<<endl;

  }

  else{

    for (int i = l; i <= r; i++){

      swap(nums[l], nums[i]);

      permute(nums, l+1, r);

      swap(nums[l], nums[i]);

    }

  }

}

int main(){

  vector<int> nums = 2;

  permute(nums, 0, nums.size()-1);

  return 0;

}

在上述代码中,我们首先定义了一个函数permute,它接收一个vector类型的nums,起始位置l和结束位置r参数。如果起始位置和结束位置相等,那么说明这是一种排列方式,我们将其输出。否则,我们依次交换nums数组中l到r位置之间的数,然后递归调用permute函数。调用之后,我们再次交换nums数组中l到r位置之间的数,避免对数组造成影响。最后在main函数中,我们定义一个vector类型的nums,然后调用permute函数,输出所有的排列方式。

总之,C++语言实现全排列算法的代码是非常简单易懂的。只需利用递归和交换的方法,就可以轻松地实现数学中的全排列思想。无论是解决算法问题,还是完成实际编程任务,全排列算法都是非常实用的。

  
  

评论区

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