码迷,mamicode.com
首页 > 编程语言 > 详细

活动安排问题python实现

时间:2014-05-21 14:13:42      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:贪心算法   python   活动安排问题   

        活动安排问题要求高效地安排一系列争用某一公共资源的活动,贪心算法提供了一个简单的方法,使尽可能多的活动能兼容地使用公共资源。贪心算法并不总能求得问题的整体最优解,但对于活动安排问题,贪心算法却能做到,使得最终所确定的相容活动集合的规模最大,证明不在这里给出。代码如下:

def greedyManage(meeting):
	length=len(meeting)
	meeting.sort(key=lambda x:x[1])
	result=[False for i in range(length)]
	j=0 #当前选中的活动
	result[j]=True #选中第一个活动
	for i in range(1,length):
		if meeting[i][0]>=meeting[j][1]:
			j=i
			result[j]=True
	return result

def show(result):
	length=len(result)
	print('安排的活动为:')
	count=0
	for i in range(length):
		if result[i]:
			print('第',i+1,'个活动')
			count+=1
	print('\n共计',count,'个活动')

if __name__=='__main__':
	meetings=[(1,4),(3,5),(0,6),(5,7),(3,8),(5,9),(6,10),(8,11),(8,12),(2,13),(12,14)]
	res=greedyManage(meetings)
	show(res)

bubuko.com,布布扣

    meetings是一个list,里面每个tuple是一个活动的起始时间和结束时间,刚开始是乱序的,首先要按照每个活动的结束时间升序排列,然后首先默认选择第一个活动,依次遍历所有活动找出相容的活动,最后输出结果如下:

bubuko.com,布布扣


转载请注明:转自http://blog.csdn.net/littlethunder/article/details/26449245

活动安排问题python实现,布布扣,bubuko.com

活动安排问题python实现

标签:贪心算法   python   活动安排问题   

原文地址:http://blog.csdn.net/littlethunder/article/details/26449245

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!