也是面试题,如何生成从1~n这n个数的所有的排列。。。我没想明白,有谁能指点一下?
private static void Permutation(List<int> v, int m, int n)
{
int i;
if (m < n - 1)
{
Permutation(v, m + 1, n);
for (i = m + 1; i < n; i++)
{
Swap(v, m, i);
Permutation(v, m + 1, n);
Swap(v, m, i);
}
}
else
{
foreach (int vs in v)
{
Console.Write(vs);
}
Console.Write("\r\n");
}
}
private static void Swap(List<int> v, int m, int i)
{
int t;
t = v[m]; v[m] = v[i]; v[i] = t;
}
调用方法:
List<int> v = new List<int> { 1, 2, 3};
Permutation(v, 0, 3);
什么意思,我没看明白
可以描述清楚吗?
典型的全排列算法,给你个地址参考一下吧,直接用文字说明太多了点
http://www.diybl.com/course/4_webprogram/asp.net/asp_netshl/2008124/97113.html