高级算法设计与分析(四) -- 贪心算法

系列文章目录

高级算法设计与分析(一) -- 算法引论

高级算法设计与分析(二) -- 递归与分治策略

高级算法设计与分析(三) -- 动态规划

高级算法设计与分析(四) -- 贪心算法

高级算法设计与分析(五) -- 回溯法

高级算法设计与分析(六) -- 分支限界法

高级算法设计与分析(七) -- 概率算法和NP完全性理论

高级算法设计与分析(八) -- 总结


目录

系列文章目录

前言

一、贪心算法的基本思想

二、活动安排问题

三、贪心算法的基本要素

四、哈夫曼编码

五、单源最短路径-Dijkstra算法

六、最小生成树

1、基础概念与问题

2、prim算法(普里姆算法)

3、kruskai算法(克鲁斯卡尔算法)

习题


前言

tips:这里只是总结,不是教程哈。鉴于本人写字如画符,就不出视频教程了,如实在有需要,请在文章下方留言。当然,文章有任何问题,也请留言,谢谢!

这个系列用另一种形式,把习题放在最下面,看看好用不。

本系列文章最后一文会进行简要全部总结,以及思维导图放在最后一篇文章最下面,请自行获取。


一、贪心算法的基本思想

50,20,0.2,0.1
3*5

二、活动安排问题

1、问题描述

给定一组活动,每个活动都有一个开始时间和结束时间,目标是安排出一个最大数量的相互兼容的活动集合,即这些活动之间不会相互冲突。

2、例子

3、步骤:

因为是按照结束时间的非减排序的,选择第一个后(红1),把开始时间在这个活动结束时间之前的都排除(红叉),然后继续选择未排除的结束时间最早的一个(绿2),把开始时间在这个活动结束时间之前的都排除(绿叉),以此类推……

4、算法正确性证明:

另一种表述,看你们能接收那种

三、贪心算法的基本要素

1、贪心选择性质、最优子结构

***自顶向下和自底向上

2、证明方法

4、贪心算法的适用范围

5、背包问题和0-1背包问题

四、哈夫曼编码

复杂度

五、单源最短路径-Dijkstra算法

1、问题描述

有向图

2、算法的基本思想

3、将算法用程序描述

复杂度分析:时间复杂度:o(|V|^2)

4、算法正确性证明

六、最小生成树

1、基础概念与问题

2、prim算法(普里姆算法)

2.1、直接算法实现

2.2、prim算法实现

时间复杂度:o(|V|^2)

3、kruskai算法(克鲁斯卡尔算法)


习题

topic1:

topic2:

topic3:

topic4:

topic5:

topic5:

topic6:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/295008.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python/matlab将数组以彩色图片的形式展现

python: plt.imshow可以将数组的值以图片的形式展示出来,数组的值对应着不同的颜色深浅。比如一个2X2的数组,图片里的小方块也会有2X2个。 案例1结果: 案例1代码: import numpy as np import matplotlib.pyplot as pltx np.ar…

智能优化算法应用:基于变色龙算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于变色龙算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于变色龙算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.变色龙算法4.实验参数设定5.算法结果6.参考文…

k8s启动docker容器Error: Could not find or load main class ${start-class}报错

前行提要: 今天部署采集点服务(docker项目)发现报这个错误。 提出假设: 1,配置文件错误(工程需要配置的东西比较多) 之后开始一一排查,发现配置有问题,但是不是这个错误…

2023的AI工具集合,google和claude被禁用解决和edge的copilot

一、前言 AI工具集合 首先,OpenAI的ChatGPT以其深度学习模型和强大的语言处理能力引领了AI聊天机器人的潮流。自2022年11月30日上线以来,它创下了100万用户的注册记录,并被广泛应用于全球财富500强公司。为了实现盈利,OpenAI发布…

Redis原理

🌇个人主页:平凡的小苏 📚学习格言:命运给你一个低的起点,是想看你精彩的翻盘,而不是让你自甘堕落,脚下的路虽然难走,但我还能走,比起向阳而生,我更想尝试逆风…

DshanMCU-R128s2启动与资源划分

启动与资源划分 下面简单介绍一下 R128 方案的资源划分与启动流程。 资源划分 CPU 资源划分 这只是默认配置方案,CPU 资源划分可以按照需求任意修改 CPU功能说明M33控制核。运行 WI-FI/BT 固件、协议栈、驱动、休眠唤醒、安全启动、安全控制C906应用核。运行大…

《软件方法(下)》8.2.4 类和属性的命名

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 8.2 建模步骤C-1 识别类和属性 8.2.4 类和属性的命名 8.2.4.2 关于DDD话语中的“通用语言” DDD(领域驱动设计)话语中有“通用语言(Ubiquitous L…

MongoDB介绍

一、MongoDB介绍 1.1 mongoDB介绍 MongoDB 是由C语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB …

[SQL]实验 视图和索引的应用

实验目的: [实验目的和要求] 1、掌握视图的创建、修改和重命名的方法 2、掌握视图中数据的操作 3、了解索引的作用 4、掌握索引的创建方法 实验步骤: 1、在销售管理数据库中,创建一个女职工视图,包括员工的编号、姓名、性别、雇佣…

不忍学弟学妹受苦受难!!!逐一讲解发动机原理实验报告(1)

固体火箭发动机侵蚀燃烧测试实验 经过了愉快迷糊——哦不瑟瑟发抖——哦不痛不欲生的两天,终于和小伙伴们协力完成了西北工业大学航天学院发动机原理实验报告。具体的实验指导书均可在本人博客资源站下载。 固体火箭发动机侵蚀燃烧测试实验,嗯哼—— 实…

面试官95%会问的接口测试知识!

接口测试最近几年被炒的火热了,越来越多的测试同行意识到接口测试的重要性。接口测试为什么会如此重要呢? 主要是平常的功能点点点,大家水平都一样,是个人都能点,面试时候如果问你平常在公司怎么测试的,你除…

前端基础location的使用

概念 获取当前页面的地址信息,还可以修改某些属性,实现页面跳转和刷新等。 样例展示 window.location 含义.originURL 基础地址,包括协议名、域名和端口号.protocol协议 (http: 或 https:).host域名端口号.hostname域名.port端口号.pathname路…