![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 74
书式
这个作者很懒,什么都没留下…
展开
-
排列组合知多少--排列篇
如题所示,此篇介绍排列,排列问题的应用非常广泛,是高级程序员必须掌握的一种算法,其重要性可见一斑。下面介绍2种排列算法。 方法一: 自定义函数Try递归调用,内部通过swap函数交换数组的值,第2个swap用来恢复交换前状态。具体为什么这样做?只要自己稍加推算就可以了。该算法时间复杂度为n!,效率很高,我们应该努力掌握,它是解决所有关于排列问题的框架。 #include "iostream.原创 2012-02-22 15:47:36 · 392 阅读 · 0 评论 -
子集问题
以数列 1 2 3 为例, 它的所有子集如下: 1 2 3 1 2 1 3 2 3 1 2 3 说到子集,其实和组合有密切的关系,不难发现上面的结果就是数列 1 2 3的 n=3,r=1 与n=3,r=2以及n=3,r=3的所有组合。因此,我之前的组合篇中的递归与非递归的组合算法都可以加上循环转化为求子集的算法。在此篇中我就不重复介绍那些算法,重点介绍 c++中2进制法以及子集树原创 2012-02-23 11:07:27 · 467 阅读 · 0 评论 -
排列组合知多少--组合篇
这是我的第一篇博文,笔者资历尚浅,不对之处有劳斧正。算法之于程序,同如灵魂之于肉体,灵魂驾驭肉体,算法主宰程序,一点也不浮夸。学好算法,好比行走江湖有一技榜身;相反忽视算法,“问题”就多了,难求一解,效率低下之类,自不必说。受限于此,更是难以脱颖于同行,驻足于尖端。“码农”一说,由此得来。 切入正题,此篇主要分享3种不同的求组合算法(c++) 方法1 递归: 以一组数列为例: 1 2 3原创 2012-02-19 11:42:07 · 453 阅读 · 0 评论