版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、6班 李康 201400301237问题描述: 在箱子装载问题中,有若干个容量为c的箱子和n个待装载入箱子中的物品。物品i需占si个单元(0sic)。所谓成功装载(feasiblepacking),是指能把所有物品都装入箱子而不溢出,而最优装载(optimalpacking)则是指使用了最少箱子的成功装载。(1) 最先匹配法(First Fit, FF) 物品按1,2,n的顺序装入箱子。假设箱子从左至右排列。每一物品i 放入可盛载它的最左箱子。 (2) 最优匹配法(Best Fit, BF) 设cAvailj为箱子j的可用容量。初始时,所有箱子的可负载容量为c。 物品i放入具有最小cAvail
2、且容量大于si的的箱子中。 (3) 最先匹配递减法(First Fit Decreasing, FFD) 此方法与FF类似,区别在于各物品首先按容量递减的次序排列,即对于l in,有sisi+1。 (4) 最优匹配递减法( Best Fit Decreasing, BFD) 此法与BF相似,区别在于各物品首先按容量递减的次序排列,即对于l in,有sisi+1。竞赛树是一类完全二叉树,分为赢者树和输者树。赢者树就是在每一个内部节点中记录比赛赢的一方,输者树就是记录输的一方。竞赛树的外部节点就是所有参加比赛的选手,其上一层为第一轮比赛赢或输的选手class WinnerTreepublic:Wi
3、nnerTree(int TreeSize = 10);WinnerTree() delete t; void Initialize(T a, int size, int(*winner)(T a, int b, int c);/初始化int Winner()const return(n) ? t1 : 0; int Winner(int i)const return(i n) ? ti : 0; void RePlay(int i, int(*winner)(T a, int b, int c);/成员改变时 void FirstFitPack(int s, int n, int c);/最
4、先匹配算法private:int MaxSize;int n;/当前大小int LowExt;/最底层的外部节点int offset;/2k-1int *t;T *e;/元素数组void WinnerTree:FirstFitPack(int s, int n, int c)/箱子容量c,物品数量n,s【】为各物品所需要的空间int(*winner)(T a, int b, int c);WinnerTree*W = new WinnerTree(n);int *avail = new intn + 1;/初始化n个箱子和赢者树for (int i = 1; i Initialize(avai
5、l, n, winner);/将物品放入箱子中for (int i = 1; i = n; i+)int p = 2; while (p Winner(p);if (availwinp si)p+;p *= 2;int b;p /= 2;if (p Winner(p);if (b 1 & availb - 1 = si) b-;else b = W-Winner(p / 2);cout Pack object i in bin b RePlay(b, winner);AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删
6、除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。高度为 h 的 AVL 树,节点数 N 最多2h 1; 最少N(h)=N(h 1) +N(h 2) + 1。class avl_treepublic: void BestFitPack(int s, int n, int c);avl_tree() head = NULL; bool FindGE(const T &k, T &Kout)const;bool insert(node* &q, T &e);/插入节点bool remove(node* &q, T e);/删除节点void print
7、(node* &q, int level);/格式化打印树void middle_visit(node* &q);/中序遍历node*& get_head() return head; /返回根节点的引用,注意是引用bool avl_tree:FindGE(const T &k, T &Kout)const/寻找值=k的最小元素node *p = head, *s = 0;/指向迄今所找到的=k的最小元素while (p)if (k elem)s = p;p = p-left;else p = p-right;if (!s)return false;Kout = s-elem; return true;void avl_tree:BestFitPack(int s, int n, int c)/n物品个数,c箱子容量,s物品的大小int b = 0;avl_tree A;for (int i = 0; i = n; i+)int k;node P;if (A.FindGE(si, k)A.remove(A.get_head(), k);k -= si;if (k!= 0) A.insert(A.get_head(), k
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年新教材高中数学 第七章 随机变量及其分布 7.1.2 全概率公式(教师用书)教案 新人教A版选择性必修第三册
- 《六国论》课件的影视改编:2024年文化现象分析
- 《接触网施工》课件 4.8.2 无交叉线岔安装
- 2024年用友T6企业资源规划教程全解析
- 探索未知领域:2024年《生理学基础》教案展望
- 四年级语文下册作文教学计划
- 2024年春季学期:《长恨歌》的全新解读
- 《马钧传》教学创新策略:面向2024年
- 智能家具厂的账务处理实例-记账实操
- 2024年电子商务概论教案改革探讨
- 回收PET塑料资源化利用及产业化进展研究
- 英语-浙江省湖州、衢州、丽水2024年11月三地市高三教学质量检测试卷试题和答案
- 劳动技术教案
- 大学美育(同济大学版)学习通超星期末考试答案章节答案2024年
- 劳动法律学习试题
- 过敏性休克完整版本
- 应急第一响应人理论考试试卷(含答案)
- DZ∕T 0213-2020 矿产地质勘查规范 石灰岩、水泥配料类(正式版)
- 2024年湖北省工业建筑集团有限公司招聘笔试参考题库含答案解析
- 软件工程师专业人物访谈
- 招商银行无追索权公开型国内保理业务操作规程
评论
0/150
提交评论