数组的全排列
程序员文章站
2024-03-24 12:28:34
...
#include <iostream>
using namespace std;
template<class Type>
inline void Swap(Type &a, Type &b)
{
Type temp=a;
a=b;
b=temp;
}
template <class Type>
/*
算法Perm(list,k,m)递归地产生所有前缀是list[0:k-1],且后缀是list[k:m]的全排列的所有排列。
全排列从k位置开始,到m位置结束。
*/
void Perm(Type list[], int k, int m)
{
if(k==m)
{
for(int i=0;i<=m;i++)
{
cout<<list[i];
}
cout<<endl;
}
else
{
for(int i=k;i<=m;i++)
{
Swap(list[k],list[i]);
Perm(list,k+1,m);
Swap(list[k],list[i]);
}
}
}
int main()
{
int a[]={1,2,3};
Perm(a,0,2);
return 0;
}
转载于:https://my.oschina.net/u/923087/blog/279193
上一篇: 在代码中使用LayoutAnimationController
下一篇: ToolTip