山东科技大学学生课程设计二分查找程序的实现需求分析对于.DOC

山东科技大学学生课程设计二分查找程序的实现需求分析对于.DOC

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
山东科技大学学生课程设计二分查找程序的实现需求分析对于

山东科技大学学生课程设计 PAGE 0 二分查找程序的实现 一、需求分析 对于最小重量机器设计问题,设计其回溯算法和分支限界算法的解决方案,并体会回溯方法和分支限界方法的区别。 二、概要设计及模块划分 (1) 最小重量机器设计问题的回溯算法 回溯算法划分成如下几个模块实现,包括: 主模块 被调用的第一个模块,叫backtrack名字,最小重量机器设计问题的回溯算法; 被调用的第二个模块,叫MinMachine名字,赋值的操作; main main backtrack MinMachine (2) 最小重量机器设计问题的分支限界算法 分支限界算法划分成如下几个模块实现,包括: 主模块 MinHeap(int sz=DefaultSize)模块,构造函数,建立一个空堆; MinHeap(E* arr,int n)模块,构造函数,通过数组来建堆; Insert模块,将元素x插入到最小堆中; RemoveMin模块,删除堆顶的最小元素; IsEmpty模块,判断当前堆是否为空; IsFull模块,判断当前堆是否为满; MakeEmpty模块,把当前堆置空; Display模块,显示当前堆的内容; siftDown模块,下浮全部调整; siftUp模块,上浮全部调整; MinWeightMachine模块,计算最小重量; AddLiveNode模块,添加活节点; Machine模块,完成最小重量机器设计; 三、详细设计 (1) 最小重量机器设计问题的回溯算法流程图 backtrack函数流程图: MinMachine函数流程图: main 主函数流程图:调用函数模块及输入、输出操作; (2) 最小重量机器设计问题的分支限界算法流程图 MinHeap函数流程图: a. MinHeap(int sz=DefaultSize) b. MinHeap(E* arr,int n) Insert函数流程图: RemoveMin函数流程图: AddLiveNode函数流程图: Display函数流程图: siftDown函数流程图: siftUp函数流程图: Opetator函数流程: MinWeightMachine函数流程图: Machine函数流程图: main函数流程图: 四、运行结果及分析 (1)最小重量机器设计问题的回溯算法运算结果 (2)最小重量机器设计问题的分支限界运算结果 五、总结 通过本次课程设计,让我清楚的明白了最小机器问题,分别学会使用回溯法和分支限界法,对于最小重量机器设计问题,了解了回溯方法和分支限界方法的区别。 附:主要源代码 #ifndef MINHEAP_h #define MINHEAP_H #includeiostream #includestdio.h #includestdlib.h using namespace std; #define DefaultSize 20 templateclass T,class E class MinHeap { public: MinHeap(int sz=DefaultSize);//构造函数,建立一个空堆 MinHeap(E* arr,int n); //构造函数,通过数组来建堆 ~MinHeap() //析构函数,释放堆的内存空间 {delete [] heap;}; bool Insert(const E x); //将元素x插入到最小堆中 bool RemoveMin(E x); //删除堆顶的最小元素 bool IsEmpty()const //判断当前堆是否为空 {return currentSize==0;}; bool IsFull()const //判断当前堆是否为满 {return currentSize==maxHeapSize;}; void MakeEmpty() //把当前堆置空 {currentSize=0;}; void Display();

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档