排列组合的排序问题
??? 全排列的遞歸算法:
?
Codetemplate?<class?Type>
inline?void?Swap(Type?&a,Type?&b)
{
????Type?temp=a;
????a=b;
????b=temp;
}
void?Perm(Type?list[],int?k,int?m)
{???//產(chǎn)生list[k:m]的所有排列
????if(k==m)
????{???//只剩下1個(gè)元素
????????for(int?i=0;i<m;i++)
????????????cout?<<?list[i];
????????cout?<<?endl;
????}
????else????//還有多個(gè)元素待排列,遞歸產(chǎn)生排列
????????for(int?i=k;i<m;i++)
????????{
????????????Swap(list[k],list[i]);
????????????Perm(list,k+1,m);
????????????Swap(list[k],list[i]);
????????}
}
?
??? 這個(gè)排序還是很經(jīng)典的,以致于我們花了一節(jié)課的時(shí)間在研究該遞歸。
轉(zhuǎn)載于:https://www.cnblogs.com/Derek_nr/archive/2008/09/30/1302435.html
總結(jié)
- 上一篇: uml符号含义
- 下一篇: RouterOs建立PPPoE虚拟拨号服