活动安排-贪心算法-可视化

本文通过Python介绍如何使用贪心算法进行活动安排,确保能最大限度利用资源。首先,根据活动结束时间对活动排序,然后依次选择结束最早且不与其他已选活动冲突的活动。文章还提供了一个简单的matplotlib可视化示例,帮助理解算法的运行过程。
摘要由CSDN通过智能技术生成

前情提要

有n个活动(假设n很大,人力安排较困难)

n个活动的开始时间和结束时间已经知道

但我又想充分利用资源,安排最多数量的活动

贪心算法

语言:python

可视化依赖的第三方库:numpy,matplotlib

开始活动安排之旅

贪心算法概述:

    创建活动类(或结构体),按照用户输入实例化为一个个活动对象,按照活动的结束时间增序对活
动整体排序,挑选活动时,活动的结束最早的优先被选取,为剩下活动留下最多的时间来安排(每次使剩下的时间可能安排最多的活动,或说是每次自己占用的时间资源最少),是谓贪心。

细节

    算法的实现不依赖于具体的语言,但为了可视化的便捷,我未能阻挡python的有货
    放数据的容器选择了Python的苦力:列表。按照对象的属性值排序用了sort函数,只有一行,
突出贪心算法
    实现过程:一个已经按结束时间排好序的对象列表,第一个活动定被选入,看第二个活动是否
与最后一个被选入的活动冲突(只看其开始时间即可),冲突否?不选:选;然后看下一个,重复判断冲突的过程......,即欧克
    为了可视化,将对象加个属性(标记):select;初始化为false
    可视化的部分照葫芦画个瓢,下给小d

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值