1.简介

贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。

贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。

2.思想

贪心算法的基本思路是从问题的某一个初始解出发一步一步地进行,根据某个优化测度,每一步都要确保能获得局部最优解。每一步只考虑一个数据,他的选取应该满足局部优化的条件,直到把所有数据枚举完。

贪心算法的思想如下:

a)建立数学模型来描述问题;

b)把求解的问题分成若干个子问题;

c)对每一子问题求解,得到子问题的局部最优解;

d)把子问题的解局部最优解合成原来解问题的一个解。

与动态规划不同的是,贪心算法得到的是一个局部最优解(即有可能不是最理想的),而动态规划算法得到的是一个全局最优解(即必须是整体而言最理想的),一个有趣的事情是,动态规划中的01背包问题就是一个典型的贪心算法问题。

3.学习方法

由浅入深,不妨先将动态规划中的01背包问题弄熟悉,再来学习贪心算法的基础思维,其实在很多时候自己并未发觉自己已经是在使用贪心了,当你基本掌握了一些贪心的概念的时候,可以做一些诸如装箱问题,切割问题,区域分配问题的题目,巩固自己的知识。

4.相关例题

有很多经典的应用,比如霍夫曼编码(Huffman Coding)、Prim 和 Kruskal 最小生成树算法、还有 Dijkstra 单源最短路径算法,最小生成树算法和最短路径算法,甚至是一些暴力求解题目,都是使用了贪心的这种思维。

可以直接从dotcpp网站标签中搜索贪心即可,贪心算法在很多题目中均或多或少有一些思维的应用,因此题目涵盖非常广阔,非常适合逐步练习。

贪心算法设计作业调度c语言,贪心算法 - 数据结构与算法教程 - C语言网相关推荐

  1. 算法设计与分析:贪心算法 - 排课问题(DP与贪心的区别与应用)

    文章目录 前言 贪心算法概念 排课问题 问题描述与分析 动态规划求解 简化问题应用贪心算法 总结 本文参考UCAS卜东波老师算法设计与分析课程撰写 前言 前面两大章节的内容分治思想与动态规划暂时告一段 ...

  2. rsa算法c语言实现_数据结构与算法之线性表-顺序表实现(C语言版本)

    原文托管在Github: https://github.com/shellhub/blog/issues/52 数据结构与算法之线性表-顺序表实现(C语言版本) 前言 数据结构与算法是一个程序员必备的 ...

  3. c语言中的code6,第6讲_嵌入式C语言_常见数据结构及算法

    嵌入式C语言编程--常见数据结构及算法 GDAIB Data Structure and Arithmetic 结构.联合.枚举\r用结构构成链表\r单向链表\r双向链表\r循环双向链表\rC语言中的 ...

  4. c语言数据结构常考算法,第6讲嵌入式C语言_常见数据结构及算法..docx

    /复习结构.联合.枚举 /复习结构.联合.枚举Page 3 GDAIB Embedded C Programming 嵌入式c语言编程--常见数据结构及算法 Data Structure and Ar ...

  5. 一篇解双链表(0基础看)(C语言)《数据结构与算法》

    目录 序言 带头双向循环链表 1. 概念 2. 效果展示图 3. 接口实现 3.01. 本文章要实现的接口 ​3.02. 双链表的实现 3.03. 双链表的初始化 3.04. 打印链表 3.05. 动 ...

  6. 【算法设计与分析】贪心算法:单源最短路径和prim算法的最小生成树

    1.单源最短路径问题的问题提出是,计算带权有向图G =(V, E)中一个点(源点)到其余各顶点的最短路径长度,如下图所示.设源点为顶点1,采用Dijkstra算法求下图中源V0为到其余各顶点的最短路径 ...

  7. 数据结构c语言程序设计报告,数据结构与算法课程设计报告模版.doc

    数据结构与算法课程设计报告模版.doc 数据结构与算法课程设计报告题 目本科生导师制问题与家族关系查询系统院 (系) 信息科学与工程 专业班级 计算机应用技术1301班 学生姓名 顾 泉 学 号 20 ...

  8. 0x08算法设计与分析复习(二):算法设计策略-回溯法2

    参考书籍:算法设计与分析--C++语言描述(第二版) 算法设计策略-回溯法 子集和数 问题描述 已知n个不同的正数wi(0≤i≤n−1)的集合,求该集合的所有满足条件的子集,使得每个子集中的正数之和等 ...

  9. 计算机算法设计与分析第四版复习,计算机算法设计与分析(第4版)第1章.ppt

    <计算机算法设计与分析(第4版)第1章.ppt>由会员分享,可在线阅读,更多相关<计算机算法设计与分析(第4版)第1章.ppt(50页珍藏版)>请在人人文库网上搜索. 1.计算 ...

  10. c语言通用数据结构和常用算法库,基于C语言的通用数据结构和算法库

    本人最近在学习数据结构的课程,在过程中发现用C语言来实现各种数据结构类型的时候很难做到真正意义上的通用的数据结构,于是在网上搜罗了一些所谓的C语言通用数据结构库,在此也将这些数据结构库一一罗列,方便大 ...

最新文章

  1. LabVIEW实现PCB电路板元器件匹配定位(实战篇—7)
  2. 基于DDD的现代ASP.NET开发框架--ABP系列之1、ABP总体介绍
  3. Elasticsearch介绍Kibana分词器增删改操作
  4. 练习:自己写一个容器ArrayList集合 一一数组综合练习2
  5. python【数据结构与算法】对python抽象的再探索(看不懂你来打我)
  6. POJ - 3347 Kadj Squares(思维+几何)
  7. 年轻有为的老黄2020
  8. *【 POJ - 1007 】DNA Sorting(枚举,类似三元组找第二元问题)
  9. 福建省考计算机专业,2020福建省考,这些报考专业问题你清楚吗?
  10. 信息学奥赛一本通(1210:因子分解)
  11. Docker web管理界面——Shipyard
  12. 如何仅对文档项目在ECB中应用自定义操作
  13. LayaAir UI 组件 # Image 位图、Label 标签
  14. AB_PLC编程软件RSLogix_500_与PLC通讯详细说明
  15. 詹姆斯·格雷克《信息简史》读后感记录
  16. PyCharm下载及安装教程(Windows)
  17. oracle期中考试题库,2017年Oracle认证考试题库
  18. UE4中的LookAt
  19. win10照片查看器_Win10小技巧,帮你事半功倍
  20. 北京理工大学计算机实验广域网通信与有,北京理工大学计算机实验七报告表

热门文章

  1. maven 中 pom.xml 配置文件标签说明,dependencyManagement和dependencies区别
  2. MySQL于ON DUPLICATE KEY UPDATE采用
  3. 关于editor网页编辑器ueditor.config.js 配置图片上传
  4. CSS margin 属性简介
  5. 学以致用十三-----Centos7.2+python3+YouCompleteMe成功历程
  6. 前端入门教程(七)CSS属性设置
  7. 3D打印技术在医疗领域能做些什么?帮助精确完成手术
  8. 9、C语言 —— 指针的用处
  9. 【 2013华为杯编程大赛成都第三组前两题试题及答案】
  10. 网络安全技术之端口隔离