kruskal算法_最常用的算法原来早已在实践中应用了

3019c356f9def2eeaf97f0a069a2465a.png

五大常用算法:分治、动态规划、贪心、回溯、分支限界

分治:把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。

贪心:在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。 常见的贪心算法有:Prim算法、Kruskal算法(都是求最小生成树的)

基本思路:将问题分解为若干个小问题,逐渐求得各个子问题的局部最优解,最后合并为原来问题的解。

回溯:回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。深度优先

回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。

一直听说算法对于编程如何如何重要,但我一看有那么多内容,就先挑了最最常用的几个先学习一下。出乎意料的简单。就是一个思考模式,目标,方法,调整。这个方法里面也可以包含很多用来解决复杂问题的算法,我想大部分应用层面问题的都可以靠库来解决。复杂的如神经网络,目前我也知道原理了,尚不打算学习那么深入,只是知道算法这个东西是一个程序设计的思考方式,可以简化实现的流程。基础算法没有优劣之分,但适用于不同的场景,适合的话效果会很好。

本着应用为主的思想,接下来就学习爬虫。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值