枚举算法适用于候选答案数量一定的情况 。
典型例子包括鸡钱问题 , 有公鸡5 , 母鸡3 , 三小鸡1 , 求m钱n鸡的所有可能解 。 可以采用一个三重循环将所有情况枚举出来 。 代码如下:
五、回溯算法
回溯算法是一个类似枚举的搜索尝试过程 , 主要是在搜索尝试过程中寻找问题的解 , 当发现已不满足求解条件时 , 就“回溯”返回 , 尝试别的路径 。
许多复杂的 , 规模较大的问题都可以使用回溯法 , 有“通用解题方法”的美称 。
典型例子是8皇后算法 。 在8×8格的国际象棋上摆放八个皇后 , 使其不能互相攻击 , 即任意两个皇后都不能处于同一行、同一列或同一斜线上 , 问一共有多少种摆法 。
回溯法是求解皇后问题最经典的方法 。 算法的思想在于如果一个皇后选定了位置 , 那么下一个皇后的位置便被限制住了 , 下一个皇后需要一直找直到找到安全位置 , 如果没有找到 , 那么便要回溯到上一个皇后 , 那么上一个皇后的位置就要改变 , 这样一直递归直到所有的情况都被举出 。
六、动态规划算法
动态规划过程是:每次决策依赖于当前状态 , 又随即引起状态的转移 。 一个决策序列就是在变化的状态中产生出来的 , 所以 , 这种多阶段最优化决策解决问题的过程就称为动态规划 。
动态规划算法适用于当某阶段状态给定以后 , 在这阶段以后的过程的发展不受这段以前各段状态的影响 , 即无后效性的问题 。
典型例子比如说背包问题 , 给定背包容量及物品重量和价值 , 要求背包装的物品价值最大 。
以上就是程序员经常使用的六种经典算法 , 读者们还了解哪些常用的优秀算法吗?欢迎留言哦 。
- iqoo|卡贴机大降价,iPhone13只要3000出头,网友都说“真香”
- 社交|腾讯视频为IP编写「价值算法」
- 新书推荐 │ 大数据算法设计与分析
- 你用过的头像都成了明星,林彦俊走红网络,只有她默默无闻
- 网友热议|母亲回应3个孩子2个上清华:只能教孩子做人诚实守信 学习都靠自己努力
- |大家都说iPhone好看,其实可能对这个品牌更喜欢才对
- 小米科技|雷军晒小米12 Ultra的随手拍!可惜手挡住了,什么都看不清
- 为什么同学群里,很少有人说话,大部分人都选择沉默或者屏蔽?
- 拼多多|4P营销新理论
- 你可能不信:新手机都用旧零件 iPhone也不例外
