5第五章贪心方法.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 存在n个作业,每个作业花费一个单位时间,因此只需考虑时间片[i?1, i],1?i?b,b?min{n, max{di}} 例如:10个作业,作业的截止期中最大值是5,只需考虑时间段[0,5] 5个作业,作业的截止期中最大值是10,同样只需考虑时间段[0,5] 对于任一期限i,设ni是满足ni?i且[ni?1,ni]为空的最大整数 引进一个虚构的期限值0和时间片[?1,0] 若期限值i?j,但ni?nj,设i?j表明时间[i?1, j]是满的,所以期限值为i?1, i?2, ?, j的作业都有可能分到[ni?1, ni]时间片 对于每个期限值i,用F(i)表示当前最接近的空时间片,即 F(i)?ni . 开始时,时间片都为空,F(i) ? i. 思想:将期限值表示成集合,使得确定?的时间减小 算法5.5设计思想 * 期限值按可以分配到的时间片被分成不同集合,初始有b?1个集合。 使用集合的树表示法,把每个集合表示成一棵树,根结点就认为是这个集合。P(i)把期限值i链接到它的集合树。开始时P(i) ? ?1,0?i?b. 判断作业i的可用空时间片,即找min{n,di}的根j,若F(j)?0,说明有时间片可以分配,则 F(j)是最接近的时间片。 标识F(j)被占用:以j为根的集合树与包含期限F(j)?1的集合树合并,F(j)更新。 算法5.5设计思想 * 5.4 最优归并模式 将两个分别包含n个和m个记录的已排序文件归并成一个包含(n?m)个记录的排序文件, 时间为?(n?m) 1 4 6 0 3 5 7 9 0 1 3 4 5 6 7 9 文件1:n?3 文件2:m?5 若待归并的文件数大于2,如何处理呢? * 例,将4个文件X1,X2,X3,X4进行归并,有不同的归并方式: X1 X2 X3 X4 Y1 Y2 Y3 X1 X2 X3 X4 Y1 Y2 Y3 5.4 最优归并模式 n个文件归并,有多种归并方式,需要的时间也不同。 * 归并的计算时间,即记录比较和移动的时间。 问题:如何确定一个把n个已排序文件归并在一起的最优方法,即需要时间最少的方法。 n?3,长度分别为30,20,10 Y1 Y3 50 60 记录移动的总次数: 50?60?110 X1 X2 X3 30 20 10 Y1 Y2 X1 30 X2 X3 20 10 30 60 记录移动的总次数: 30?60?90 最优 5.4 最优归并模式 * 量度标准:每一步都归并尺寸比较小的两个文件 例:有五个文件长度分别是(F1,…,F5)?(20, 30,10, 5, 30) 5 F4 10 F3 15 Z1 20 F1 30 F2 30 F5 60 Z3 35 Z2 95 Z4 这种模式称二路归并模式, 用二元归并树来表示 叶结点称外部结点 表示已知的文件 内部结点,每个内部结点有两个儿子,表示它是由两个文件归并而得到的 5.4 最优归并模式 * 5 F4 10 F3 15 Z1 20 F1 30 F2 30 F5 60 Z3 35 Z2 95 Z4 带权外部路径长度 如果di表示从根到代表文件Fi的外部结点的距离, qi表示文件Fi的长度(即记录数),则这棵二元归并树 的记录移动总量是:?diqi ( i?1,2,?,n) 一个最优二路归并模式 与一棵具有最小外部路径 的二元树相对应 计算实例中的记录移动总量 ?diqi?5?3?10?3?20?2?30?2?30?2 ?205 5.4 最优归并模式 * 生成二元归并树算法 算法把n个树的表L作为输入,树中的每一个结点有三个信息段( LCHILD,RCHILD,WEIGHT ) 起初L中的每一棵树正好是一个结点,即外部结点,结点的LCHILD和RCHILD信息段都为0,而WEIGHT信息段的值就是已知文件的长度。 算法运行时,对于L中的任何一棵具有根结点T的树,WEIGHT(T)表示要归并的文件的长度。 WEIGHT(T)?树T中外部结点的长度和。 5.4 最优归并模式 * procedure TREE(L, n) for i ?1 to n?1 do call GETNODE(T); LCHILD(T)?LEAST(L); RCHILD(T)?LEAST(L); WEIGHT(T)?WEIGHT(LCHILD(T)) ?WEIGHT(RCHILD(T)) call INSERT(L,T)

文档评论(0)

kabudou + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档