![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
经典算法思想
文章平均质量分 91
蛮力、分治、减治、动态规划、贪心、回溯、分支限界其中算法思想以及经典案例
2418728171
这个作者很懒,什么都没留下…
展开
-
回溯法基本思想-01背包、N皇后回溯法图解
对于二叉树来说,先序、中序、后序遍历都是深度优先遍历。 深度优先就是一条路径走到底后,再返回上一步,搜索第二条路径。 前面使用蛮力法解决时,对于问题的每一种状态通过数值的二进制表示,用数字二进制中为1的位置表示该位置的物品是否放入,比如: 1(0000 0001)表示第1个物品放入,其他都不放入; 2(0000 0010)表示第2个物品放入,其他都不放入; 3(0000 0011)表示第1和第2哥物品放入,其他都不放入。原创 2024-06-29 15:44:09 · 976 阅读 · 0 评论 -
贪心法思想-求最大子数组和案例图解
如果硬币组合间有倍数关系,那么较大的硬币可以使用多个较小的硬币组合,意味着能用较小硬币的任意数量组合(加起来大于较大硬币),都可以直接使用较大硬币+一定数量的较小硬币替代去减少数量,不会出现3+3等于6,而4和3无法组合出6的这种情况。 硬币组合:[1,20,50],总金额 𝑎𝑚𝑡=60 ,贪心算法只能找到 50+1×10 的兑换组合,共计 11 枚硬币,但动态规划可以找到最优解 20+20+20 ,仅需 3 枚硬币。 因为-2为负数,一定会使后续的子序列和变小,直接舍弃。原创 2024-06-29 15:05:34 · 543 阅读 · 0 评论 -
动态规划思想-01背包图解案例
动态规划将一个问题分解为若干个互相重叠的子问题,并通过存储子问题的解来避免重复计算,从而大幅提升时间效率。 跟分治有些类似(“分”与“合”体现在状态转移方程),但是通常这些子问题都相互重叠。 所以动态规划的重点就是找到这个递推关系,即较小规模问题如何推断出更大问题的解。原创 2024-06-13 14:49:10 · 533 阅读 · 0 评论 -
减治法思想-二分查找图解案例
分治法是将一个大问题划分为若干个子问题,分别求各个子问题,然后把子问题的解进行合并得到原问题的解。 减治法同样是把一个大问题划分为若干个子问题,但是并不是求解所有的子问题,因为原问题的解就在其中一个子问题当中,所以只求解其中一个子问题。 与分治法不同的就在于这个“减”字上,会不断的将原问题的规模减小,直到找到最终的解。原创 2024-06-13 14:44:03 · 829 阅读 · 0 评论 -
分治法思想-归并排序案例图片详解
分治法,就是将一个难以解决的大问题给分成多个规模较小的子问题,分别解决各个子问题,最后合并子问题的解得到原问题的解。原创 2024-06-12 19:52:22 · 744 阅读 · 0 评论 -
蛮力法思想-选择排序案例
蛮力法(穷举法、枚举法)是一种简单直接的问题求解方法,其所依赖的基本技术就是遍历,采用一定的策略依次处理待求解问题的所有元素。即穷举所有可能的解,并逐一检查这些解是否满足问题的条件,直到找到符合条件的解为止。 在蛮力法中,没有利用问题的特殊性质或者任何其他启发式信息,而是通过暴力的方式尝试所有可能的解决方案。虽然这种方法通常效率较低,但对于一些小规模的问题或者复杂度较低的问题,蛮力法可能是一种简单有效的解决方案。原创 2024-06-12 19:43:49 · 335 阅读 · 0 评论