前情提要
有n个活动(假设n很大,人力安排较困难)
n个活动的开始时间和结束时间已经知道
但我又想充分利用资源,安排最多数量的活动
贪心算法
语言:python
可视化依赖的第三方库:numpy,matplotlib
开始活动安排之旅
贪心算法概述:
创建活动类(或结构体),按照用户输入实例化为一个个活动对象,按照活动的结束时间增序对活
动整体排序,挑选活动时,活动的结束最早的优先被选取,为剩下活动留下最多的时间来安排(每次使剩下的时间可能安排最多的活动,或说是每次自己占用的时间资源最少),是谓贪心。
细节
算法的实现不依赖于具体的语言,但为了可视化的便捷,我未能阻挡python的有货
放数据的容器选择了Python的苦力:列表。按照对象的属性值排序用了sort函数,只有一行,
突出贪心算法
实现过程:一个已经按结束时间排好序的对象列表,第一个活动定被选入,看第二个活动是否
与最后一个被选入的活动冲突(只看其开始时间即可),冲突否?不选:选;然后看下一个,重复判断冲突的过程......,即欧克
为了可视化,将对象加个属性(标记):select;初始化为false
可视化的部分照葫芦画个瓢,下给小d