当前位置:伍佰目录 » 站长资讯 » 免费资源 » 技术文章 » 文章详细

5 个牛逼的算法设计,你知道几个?

来源:本站原创 浏览:208次 时间:2021-05-06

丰达快递查询,最大胆女人体摄影,厦门优装保

  点击上方 "编程技术圈"关注, 星标或置顶一起成长

  后台回复“大礼包”有惊喜礼包!

  每日英文

  We all have moments of desperation. But if we can face them head on, that’s when we find out just how strong we really are.

  我们都有绝望的时候,只有在勇敢面对时,我们才知道我们有多坚强。

  每日掏心话

  有时候突然就心情很低落,不想说话也不想动。别人问起,也不知道该怎样回答。

  责编:乐乐 | 来自:blog.csdn.net/ght886/article/details/80289142

  编程技术圈(ID:study_tech)第 1223 次推文

  往日回顾:知名网站SWAG,因色情内容被警方查封!

  正文

  

  1、分治法

  概念:

  将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。

  思想策略

  对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接https://www.3tt.net/?mod=artinfo&aid=656解决,否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并得到原问题的解。

  特征:

  该问题的规模缩小到一定的程度就可以容易地解决

  该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质。

  利用该问题分解出的子问题的解可以合并为该问题的解;

  该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子子问题。

  第一条特征是绝大多数问题都可以满足的,因为问题的计算复杂性一般是随着问题规模的增加而增加;

  第二条特征是应用分治法的前提它也是大多数问题可以满足的,此特征反映了递归思想的应用;

  第三条特征是关键,能否利用分治法完全取决于问题是否具有第三条特征,如果具备了第一条和第二条特征,而不具备第三条特征,则可以考虑用贪心法或动态规划法。

  第四条特征涉及到分治法的效率,如果各子问题是不独立的则分治法要做许多不必要的工作,重复地解公共的子问题,此时虽然可用分治法,但一般用动态规划法较好。

  基本步骤:

  1 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题;

  2 解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题

  3 合并:将各个子问题的解合并为原问题的解。

  适用分治法求解的经典问题:

  1)二分搜索

  2)大整数乘法

  3)Strassen矩阵乘法

  4)棋盘覆盖

  5)合并排序

  6)快速排序

  7)线性时间选择

  8)最接近点对问题

  9)循环赛日程表

  10)汉诺塔

  2、动态规划 概念:

  每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。

  思想策略:

  将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。

  在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。

本文地址:http://www.reviewcode.cn/youxikaifa/205825.html 转载请注明出处!


伍佰目录声明:本站部分文章来源于网络,版权属于原作者所有。如有转载或引用文章/图片涉及版权问题,请联系我们处理.我们将在第一时间删除! 联系邮箱:tsk@qq.com

快速链接

最新收录

最新点入