八大算法基础思想

本文介绍了八大基础算法思想,包括枚举、递推、递归、分治、动态规划、贪心、回溯和模拟。枚举算法是穷举所有可能的解;递推和递归都是从已知推导未知,递归更注重迭代回归;分治策略是将大问题分解为小问题求解;动态规划处理多阶段决策,通过保存状态找最优解;贪心算法每次都选择当前最优解;回溯算法尝试所有可能,无效则退回;模拟算法通过计算机模拟真实场景预测结果。
摘要由CSDN通过智能技术生成

八大基础算法思想

算法和数据结构是每个程序员都必须修炼的内功,在面试的时候或多或少都会被问到一些算法相关的问题。

算法的应用不单只体现在编程中。狭义的来讲,算法可看作是数据传递和处理的顺序、方法和组成方式,就像是各种排序算法等。广义的来讲,算法更像是一种事物运行的逻辑和规则。

算法其实是一种思维模式,本文就简单介绍一下八种常用算法思想,分别是枚举、递推、递归、分治、动态规划、贪心、回溯和模拟

1.枚举算法

最简单的枚举算法,也被称为穷举,顾名思义就是穷尽列举。枚举思想的应用最为广泛,也最是通俗易懂。枚举思想是将问题的可能解依次全部列举,然后一一带入问题内检验,从而找到正确解

枚举思想其实有一种兵分多路的意思,就是从多个样本中依次试错找到正确结果,当然弊端也是显而易见——试错成本。还存在一些容易叫人忽视的问题,比方说待解决问题的「可能解 / 候选解」的筛选条件,「可能解」之间相互的影响,穷举「可能解」的代价,「可能解」的穷举方式等等。

枚举思想用以下图形表示:
在这里插入图片描述

案例

百钱买百鸡问题
公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?

2.递推算法

递推思想与枚举思想类似,都很符合人类的思维方式,人脑在面临未知问题时,第一反应是根基定性思维,从已知推导未知,从而得到解决问题的方法。

递推,顾名思义就是递次推导,递推思想的核心就是从已知的条件出发,逐步推算出问题的解。条件与结果中间存在着某种因果关系,这种条件关系可能人脑思维很容易想通,但是对于计算机而言,复杂的推导其实很难实现。计算机擅长的是执行高密度重复性高的工作,因此计算机在运用递推思想时,大多是重复性推理。举个例子,从「今天是 1 号」推出「明天是 2 号」,以此推导出以后的日期。这种推理的结构十分类似,往往可以通过继而往复的推理就可以得到最终的解。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值