组合算法:产生基本组合对象(Generating Elementary Combinatorial Objcts)
摘要:组合对象,算法课刚学的时候我也挺小看他的。之后在写算法,特别是蛮力法,的时候才发现他的重要性。 先说说他的用处。在算法问题中常遇到一些组合问题,如: 给你一个集合S = {2, 7, 36, 40, 53, 59, 62, 69, 77, 80, 87, 89, 95, 98, 100, 102, 103, 106, 112, 115},要你从S中找出他的子集T,使得T中所有元素的和为220。 当然,这个问题不光可以用蛮力来解决。但如果用蛮力法的话,我们有没有最简便的方法,使得算法效率最高呢。这就要用到组合对象了。 组合对象X = {xi},我的理解,它是一个与集合S = {si}...
阅读全文
posted @
2011-01-02 23:40
@心灵深处
阅读(994)
推荐(0) 编辑
最大堆/最小堆
摘要:堆的定义是:n个元素的序列{k1,k2,…,kn},当且仅当满足如下关系时被成为堆 (1)Ki = k2i 且 ki >= k2i+1 (i = 1,2,…[n/2])当满足(1)时,为最小堆,当满足(2)时,为最大堆。 若将此序列对应的一维数组堪称是一个完全二叉树,则2...
阅读全文
posted @
2010-12-30 16:39
@心灵深处
阅读(22540)
推荐(4) 编辑