n个整数全排列的递归实现(C++)

简介:

 全排列是非常常用的一个小算法,下面是n个整数全排列的递归实现,使用的是C++


#include <iostream>
using namespace std;
int n = 0;

void swap(char *a ,char *b)
{
	int m ;
	m = *a;
	*a = *b;
	*b = m;
}

void perm(char list[],int k, int m )
{
	int i;
	if(k >m)
	{
		for(i = 0 ; i <= m ; i++)
		{
			cout<<list[i];

		}
		cout<<endl;

	}
	else
	{
		for(i = k ; i <=m;i++)
		{
			swap(&list[k],&list[i]);
			perm(list,k+1,m);
			swap(&list[k],&list[i]);
		}
	}
}

int main()
{
	char list[] ="12345";
	perm(list,0,4);

	return 0;
}


目录
相关文章
|
算法 C++
C++快速幂(递归)
C++快速幂(递归)
235 0
|
算法 C++
【C++】递归,搜索与回溯算法入门介绍和专题一讲解
【C++】递归,搜索与回溯算法入门介绍和专题一讲解
|
设计模式 中间件 程序员
【C/C++ 奇异递归模板模式 】C++中CRTP模式(Curiously Recurring Template Pattern)的艺术和科学
【C/C++ 奇异递归模板模式 】C++中CRTP模式(Curiously Recurring Template Pattern)的艺术和科学
1186 3
|
算法 C++
算法笔记:递归(c++实现)
算法笔记:递归(c++实现)
218 1
|
Java Go Python
Golang每日一练(leetDay0103) 区域和检索1~3
Golang每日一练(leetDay0103) 区域和检索1~3
196 0
Golang每日一练(leetDay0103) 区域和检索1~3
|
Java Go C++
C/C++每日一练(20230426) 不喜欢带钱的小C、数组排序、超级素数
C/C++每日一练(20230426) 不喜欢带钱的小C、数组排序、超级素数
226 0
C/C++每日一练(20230426) 不喜欢带钱的小C、数组排序、超级素数
|
Java Go C++
C/C++每日一练(20230424) 只出现一次的数字、有效的括号、递归反序正整数
C/C++每日一练(20230424) 只出现一次的数字、有效的括号、递归反序正整数
199 0
C/C++每日一练(20230424) 只出现一次的数字、有效的括号、递归反序正整数
|
算法 C++ Java
C/C++每日一练(20230421) 位1的个数、递归和非递归求和、俄罗斯套娃信封问题
C/C++每日一练(20230421) 位1的个数、递归和非递归求和、俄罗斯套娃信封问题
154 0
C/C++每日一练(20230421) 位1的个数、递归和非递归求和、俄罗斯套娃信封问题