减治法算法设计

    首先要申明的是减治法思想并不等同于分治法思想,减治法技术利用一个问题给定实例的解和同样问题较小实例的解之间的某种关系。一旦建立了这种关系,就可以从顶至下(递归),或者从底之上(迭代)地来运用该关系。减治法有3种主要的变种:
1 减去一个常量
2 减去一个常量因子,大多数问题中常量因子为2
3 减去的规模可变
    对于第一种情况,举其例。
           
 要求f(n)的解,只需求f(n-1)的解,且f(n)与f(n-1)规模相差常量1。当然并不是所以常量都等于1,也可以为2,这个取决于实际问题。

    对于第二种情况,举其例。
               
    对于第三种情况,一个很好的例子就是利用欧几里得算法计算最大公约数,欧几里得算法是基于以下公式:
      
每一次递归,m的减少的规模是可变的。
                
减治法算法思想的应用
1  插入排序,Shell排序
2  深度优先查找,广度优先查找
3  拓扑排序
4  生成组合对象算法



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值