Wednesday, November 16, 2005

STL的排列算法

《Effictive STL》的item3提及两个算法:
previous_permutation和next_permutation,
看了STL的实现源码后仍有些不解,
于是在网上搜索到一篇不错的文章。

http://www.dogma.net/markn/articles/Permutations/
是Mark Nelson发表在C/C++ Users Journal上的
"C++ Algorithms: next_permutation()"
很不错的。

该文从一道小学六年级的数学作业落笔,
给出了该题的解题程序,
然后解说数字排列,
进而剖析了STL的next_permutation算法的实现。

文章最后举一实例模拟算法的运行后,
详细阐述算法在序列中出现重复值时的行为。
这个网页的上级目录还有各类其它文章,
或许值得一读。

No comments: