- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第7章每一步局部最优—贪心法;7.4求解调度问题;7.4.1不带惩罚的调度问题;序号i;1 defgreedly(a): #贪心算法
2 a.sort() #递增排序
3 T,w=0,0 #当前系统总时间和当前作业的等待时间
4 foriinrange(0,len(a)):#依次处理各个作业
5 T+=a[i]+w
6 w+=a[i]
7 returnT;7.4.2带惩罚的调度问题;贪心策略:选择当前惩罚值最大的作业优先加工,按惩罚值递减排序,并且尽可能选择作业截止时间之前最晚的时间加工。按排序后的顺序依次加工。;1 defgreedly(a): #贪心算法
2 n=len(a)
3 maxd=0
4 foriinrange(0,n):maxd=max(maxd,a[i][0])
5 days=[False]*(maxd+1)
6 a.sort(key=itemgetter(1),reverse=True)#按惩罚值递减排序
7 ans=0;8 foriinrange(0,n):
9 j=a[i][0]
10 whilej0: #查找截止日期之前的空时间
11 ifnotdays[j]: #找到空时间
12 days[j]=True
13 print(作业[%d,%d]在第%d天完成%(a[i][0],a[i][1],j))
14 break
15 j-=1
16 ifj==0: #没有找到空时间
17 ans+=a[i][1] #累计惩罚值
18 print(不能完成作业[%d,%d],惩罚%d
%(a[i][0],a[i][1],a[i][1]))
19 returnans;7.5哈夫曼编码;构造一棵哈夫曼树;利用哈夫曼树构造的用于通信的二进制编码称为哈夫曼编码。
哈夫曼树中从根到每个叶子都有一条路径,对路径上的各分支约定指向左子树根的分支表示“0”码,指向右子树的分支表示“1”码,取每条路径上的“0”或“1”的序列作为和各个叶子对应的字符的编码,这就是哈夫曼编码。;证明算法的正确性,也就是证明如下两个命题是成立的。
命题7.4两个最小权值字符对应的结点x和y必须是哈夫曼树中最深的两个结点且它们互为兄弟。
命题7.5设T是字符集C对应的一棵哈夫曼树,结点x和y是兄弟,它们的双亲为z,显然有wz=wx+wy,现删除结点x和y,让z变为叶子结点,那么这棵新树T1一定是字符集C1=C-{x,y}∪{z}的最优树。;;;问题描述:有n(1≤n≤30)块石头,每块石头的重量都是正整数(重量为1~1000)。每一回合从中选出两块最重的石头,然后将它们一起粉碎。假设石头的重量分别为x和y??且x≥y。那么粉碎的可能结果如下:
如果?x=y,那么两块石头都会被完全粉碎。
如果?x≠y,那么重量为y的石头将会完全粉碎,而重量为x的石头新重量为x-y。
最后最多只会剩下一块石头,求此石头的重量,如果没有石头剩下结果为0。;选石头的过程与构造哈夫曼树的过程类似,只是这里选的是两块最重的石头。
用优先队列(大根堆)求解,每次出队两块最重的石头x和y,然后将x-y进队,直到仅有一块石头为止。
由于heapq默认为小根堆,为此将进队的整数加上负号,在出队时再加上负号进行恢复,从而变为大根堆。;1 class?Solution:
2???? def?lastStoneWeight(self,?stones:?List[int])?-?int:
3???? maxpq=[]???? #大根堆
4?????? for?i?in?range(0,len(stones)):
5??????? heapq.heappush(maxpq,-stones[i])? #所有石头进队
6?????? x,y=0,0
7???????while?maxpq:
8??????? x=-heapq.heappop(maxpq)
9?????????if?not?maxpq:return?x?? #若x是最后的石头,返回x
10??????? y=-heapq.heappop(maxpq)?? #否则再出队y
11???????? heapq.heappush(maxpq,-(x-y))? #粉碎后为x-y
12????? return?x;
您可能关注的文档
- 《算法设计与分析基础》(Python语言描述) 课程教学大纲(含思政).docx
- 《算法设计与分析基础》(Python语言描述) 实验教学大纲.docx
- 《算法设计与分析基础》(Python语言描述) 课件 第1章 绪论.pptx
- 《算法设计与分析基础》(Python语言描述) 课件 第2章常用的数据结构及其应用(1).pptx
- 《算法设计与分析基础》(Python语言描述) 课件 第2章常用的数据结构及其应用(2).pptx
- 《算法设计与分析基础》(Python语言描述) 课件 第3章基本算法设计方法(1).pptx
- 《算法设计与分析基础》(Python语言描述) 课件 第3章基本算法设计方法(2).pptx
- 《算法设计与分析基础》(Python语言描述) 课件 第4章分治法(1).pptx
- 《算法设计与分析基础》(Python语言描述) 课件 第4章分治法(2).pptx
- 《算法设计与分析基础》(Python语言描述) 课件 第5章回溯法(1).pptx
- 2024-2030年全球与中国零售泡泡茶套件市场销售态势与竞争策略分析报告版.docx
- 2024-2030年全球及中国无噪声轮胎行业销售动态及盈利前景预测报告.docx
- 2024-2030年内固定接骨板行业市场现状供需分析及重点企业投资评估规划分析研究报告.docx
- 2024-2030年内存卡市场前景分析及投资策略与风险管理研究报告.docx
- 2024-2030年全球药用乳糖行业规模预测与未来发展机遇分析研究报告版.docx
- 2024-2030年全球食用菌市场发展动向与投资价值可行性研究报告.docx
- 2024-2030年养老产业项目商业计划书.docx
- 2024-2030年兽用药行业市场发展分析及发展前景与投资机会研究报告.docx
- 2024-2030年全球及中国贴片电位计行业盈利动态及投资前景预测报告.docx
- 2024-2030年全球及中国饼干黄油酱行业销售渠道及前景消费趋势调查研究报告.docx
最近下载
- 座椅发泡设计指南.pptx VIP
- 高中英语人教版必修 第三册(2019)_Mother of Ten Thousand Babies .pptx VIP
- 四年级上册道法知识点汇总.pdf VIP
- 2022年4月高等教育自学考试全国统一命题考试行政管理学试题含解析.pdf VIP
- 部编版语文六年级上册-第六单元教学设计.docx VIP
- 古筝协奏曲《临安遗恨》的音乐特点与演奏处理.doc
- 体育心理学试题与参考答案.pdf VIP
- 《预防校园欺凌》ppt课件(图文).pptx
- 《老人与海》课件(共43张PPT)-高中语文选择性必修 上册课件.ppt
- 中职数学基础模块 上册湘科技版(2021·十四五)合集.docx
文档评论(0)