分治法在算法设计中的运用

在算法设计中,常见的设计思想有分治法,分支定界,回溯,动态规划等等。其中分治法是算法设计中最为重要的思想之一。分治法思想的本质就是分而治之,将解决一个问题的解空间一分为二,每个子问题的解空间步骤与原问题解法上类似,分治法很多时候用递归这种方式来实现。算法设计相关教材一般将归并排序作为分治法的典型应用,归并排序思想是将一个待排序的序列一分为二,递归地对每个子序列排序,这样一直分解下去,直到不能分解为止,然后从最小子序列(不能再分割的序列)排序后合并,自底向上来对整个序列排序。其实分治法还有很多运用,比如二叉树查找,快速排序等,都有分治法思想的影子。下面就拿简单的从1到n累计求和程序设计来说明分治法的思想。从1到n最简单的就是累加法,然后也有利用等差数列公式求和之后,再计算值;当然我们也可以根据求和的递归关系来用递归求解。下面给出几个版本的代码:

//================================================================
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值