首页 > 编程知识 正文

常用算法,五大算法几个经典例子

时间:2023-05-03 08:08:04 阅读:12628 作者:3127

引言据说有人总结了计算机的五种常用算法。 贪婪算法、动态规划算法、分治算法、回溯算法和分支极限算法。 虽然不知道为什么要将这五种算法分类为最常用的算法,但这五种算法有很多应用场景,优化问题大多可以利用这些算法来解决。 算法的本质是解决问题。 如果数据量很小,则根本不需要算法。 写for循环可以完全快。 但是,如果数据量大,场景复杂,写for循环是不明智的。 一是需要时间,二是写的代码绝对是天书。 当然还有第三个。 这也是最重要的。 写代码是一门艺术,不是搬砖头。 上一篇文章详细说明和总结了这五种算法。 本文主要是总结,试着对这五种算法进行总结比较和分析。

0 )穷法穷法简单粗暴,不能没有任何问题。 只要需要时间。 同时,对于较少的数据量,穷举法是最好的算法。 像太祖长拳一样,简单,谁都能做,解决问题,但和真正的tldxmg牵手,颓废。

1 )贪婪算法贪婪算法可以获得问题的局部最优解,不一定能获得全局最优解。 另外,获得最佳解的好坏取决于贪婪战略的选择。 其特点是简单,可以得到局部最优解。 就像棍棒法一样,在同一套棍棒法中,gxdqj和bhdbbt的水平相差太大,所以同样的贪婪算法,贪婪策略也能得到非常大的结果。

具体分析请参照以下文章。

3358 blog.csdn.net/Chang yuan CHN/article/details/51417211

2 )如果动态规划算法优化问题具有重复部分问题和最优部分结构,就轮到动态规划了。 动态规划算法的核心是通过提供缓存重复部分问题结果的内存,避免递归过程中的大量重复计算。 动态规划算法的难点是如何将问题转换为可以利用动态规划算法解决。 重复子问题的数量少时,动态规划的效果也低。 如果问题中存在很多重复子问题,动态规划对提高效率非常可怕。 就像斗星移武功一样,对方强则强,对方弱则他也弱。

具体分析请参照以下文章。

3358 blog.csdn.net/Chang yuan CHN/article/details/51420028

3358 blog.csdn.net/Chang yuan CHN/article/details/51429979

3 )分割统治算法的逻辑更简单了。 也就是说,用语言分开来治疗。 分割统治算法是把一个大问题分成几个子问题,在子问题上继续分成下级问题,直到基本情况,通过基本情况的解决,一步一步地解决上级问题,最终解决第一个大问题。 分治算法是递归的典型应用。

具体分析请参照以下文章。

3358 blog.csdn.net/Chang yuan CHN/article/details/17150109

3358 blog.csdn.net/Chang yuan CHN/article/details/51465175

4 )回溯算法是深度优先策略的典型应用,回溯算法沿着一条路往下走,如果路不同,则返回上一步

岔路,选择一条路走,一直这样回归,直到你走上万有之路。 八皇后问题是回溯算法的典型问题,另一个典型的应用场景是迷宫问题。

具体分析请参照以下文章。

3358 blog.csdn.net/Chang yuan CHN/article/details/17354461

5 )如果分支边界算法的回溯算法是深度优先,则分支边界法是广度优先的典型例子。 回溯法一般是遍历整个解空间得到问题的所有解,而分支边界法则是得到一个解(一般得到最优解)。

具体分析请参照以下文章。

3358 blog.csdn.net/Chang yuan CHN/article/details/17102037

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。