zoukankan      html  css  js  c++  java
  • 贪心算法学习笔记

    贪心算法

    概念

    维基:

    贪心算法(英语:greedy algorithm),又称贪婪算法,是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法。

    步骤

    1.建立数学模型来描述问题;
    2.把求解的问题分成若干个子问题;
    3.对每一子问题求解,得到子问题的局部最优解;
    4.把子问题的局部最优解合成原来问题的一个解。

    缺陷

    • 不能保证求得的最后解是最佳的;
    • 不能用来求最大或最小解问题;
    • 只能求满足某些约束条件的可行解的范围。

    模板

    贪心算法没有固定的模板,需要针对不同问题分析来建立不同的解决框架。大致思路如下。

    //伪代码模拟贪心算法
    while ([没有得到可以组成最终解的所有局部最优解])
    {
          [利用决策,获得其中一个或多个局部最优解]
    }
    [通过已经获得的局部最优解构造最终解]
    

    相关经典问题

    旅行推销员问题

    背包问题

  • 相关阅读:
    pm2 配置
    添加项目到远程服务器(git)
    psql 命令行使用
    SQL
    iOS AFNetworking 打印从服务器返回的错误提示信息
    iOS 获取网络图片的大小
    iOS 10 常见配置的问题
    LGLTagsView
    xcode8 关闭控制台打印不用信息
    LGLProgressHUD
  • 原文地址:https://www.cnblogs.com/muphalem/p/13871651.html
Copyright © 2011-2022 走看看