【www.gdgbn.com--工作计划】
出来混的迟早一天要还的,这句话出来工作才真正体会到... 大学里没好好学,许多东西现在都要重新捡起来。按照一个完整的.net自学计划,现在也算走到算法这个学习阶段了。有些体会想share下~ 这次想说的是全排列。“比如a,b和c的排列方式有:abc, acb, bac, bca, cab 和cba。n个元素的排列方式共有n!种。”书上用的是递归方法,由于用的是C++语言,感觉有点陌生~一个激灵下想出个非递归方法,用C#写的,希望能做参考,谢谢
class Perm
...{
private List
private List
public Perm(List
...{
permPreList = list;
permedList = new List
}
public List
...{
get
...{
return permedList;
}
}
public void GetPerm()
...{
for (int i = 0; i < permPreList.Count; i++)
...{
string first = permPreList[i];
for (int j = 0; j < permPreList.Count; j++)
...{
if (j != i)
...{
string second = permPreList[j];
for (int k = 0; k < permPreList.Count; k++)
...{
if (k != j && k != i)
...{
string third = permPreList[k];
permedList.Add(first + second + third);
}
}
}
}
}
}
}
多扔砖头撒~.~