全排列(模板实现)

#include <iostream>

using namespace std;
int count = 0;
template <typename T>
void permutation(T a[],int k,int m)
{
	int i,j;
	if(k == m)
	{
		for(i = 0;i < m;i++)
			cout<<a[i]<<" ";
		cout <<endl;
		count++;

	}
	else
	{
		for(j = k;j < m;j++)
		{
			swap(a[j],a[k]);
			permutation<T>(a,k+1,m);
			swap(a[j],a[k]);
		}
	}
}

int main()
{
	char a[] = "abc";
	cout<<a<<"all result is :"<<endl;
	permutation<char>(a,0,3);
	cout<<count<<endl;

	//system("pause");
	return 0;
}
 配上全排列的思维逻辑图


猜你喜欢

转载自blog.csdn.net/asia66/article/details/81005588
今日推荐