分布式实验一

分布式实验一

ID:40618258

大小:153.00 KB

页数:9页

时间:2019-08-05

分布式实验一_第1页
分布式实验一_第2页
分布式实验一_第3页
分布式实验一_第4页
分布式实验一_第5页
资源描述:

《分布式实验一》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、**大学本科实验报告专用纸(附页)***大学研究生实验报告专用纸课程名称分布式系统成绩评定实验项目名称二分法排序的多线程程序实验项目编号一实验项目类型设计指导教师周继鹏学生姓名学号学院信息科学技术系计算机科学专业计算机应用实验时间2009年10月17日实验地点宿舍【实验目的】1.深刻理解并发计算的原理。2.初步学习多线程编程技术。【实验内容】1.给定2*n个数据,编写利用二分法排序的多线程程序。【实验环境】1.操作系统:WindowsXP2.编程语言:Java3.编程工具:Myeclipse6.0,JDK1.6【实验步骤】一、二分法排序算法描述二分排序又称为归并排序,该方

2、法是把一个给定数组一分为二,递归地为每一半排序,之后合并排好序的两半。二、二分法排序算法伪代码9**大学本科实验报告专用纸(附页)/***归并排序.*下面的算法属于MergeSorter类,当MergeSorter给数组排序时,*产生两个子数组,每个数组都是原大小的一半,然后递归地排序它们。*最后把排序好的两个数组合并到一起。*/publicvoidsort(){//数组长度<=1if(a.length<=1)return;//把数组一分为二int[]first=newint[a.length/2];int[]second=newint[a.length-first.le

3、ngth];System.arraycopy(a,0,first,0,first.length);System.arraycopy(a,first.length,second,0,second.length);//分别对每一半数组排序MergeSorterfirstSorter=newMergeSorter(first);firstSorter.sort();MergeSortersecondSorter=newMergeSorter(second);secondSorter.sort();//合并两个排好序的数组merge(first,second);}图表1传统二分法

4、排序算法伪代码一、加入多线程的二分法排序算法伪代码多线程机制的引入想要达到提高算法执行效率的目的,可惜最后结果并不像预期的那样。加入多线程的二分法排序算法的思想是:当一个数组被分成两个子数组后,分别启动两个线程对这两个子数组进行排序,最后当两个线程均进行完毕时,即线程终止时进行合并操作,这样貌似能达到对两个数组并发排序的目的,可以大大提高排序效率。9**大学本科实验报告专用纸(附页)/***归并排序.*下面的算法属于MergeSorterRunnable类,当MergeSorterRunnable给数组排序*时,产生两个子数组,每个数组都是原大小的一半,然后用两个线程分别

5、对两个数组进*行排序,然后递归地排序它们。最后当两线程均返回时,把排序好的两个数组合并到一*起.*/publicvoidsort(){//数组长度<=1if(a.length<=1)return;//把数组一分为二int[]first=newint[a.length/2];int[]second=newint[a.length-first.length];System.arraycopy(a,0,first,0,first.length);System.arraycopy(a,first.length,second,0,second.length);//启动两个线程,分别

6、对每一半数组排序MergeSorterRunnablefirstSorter=newMergeSorterRunnable(first);ThreadfirstThread=newThread(firstSorter);firstThread.start();MergeSorterRunnablesecondSorter=newMergeSorterRunnable(second);ThreadsecondThread=newThread(secondSorter);secondThread.start();//等待两个线程全部终止try{firstThread.join

7、();secondThread.join();}catch(InterruptedExceptione){e.printStackTrace();}//合并两个排好序的数组merge(first,second);}图表2加入多线程的二分法排序算法伪代码一、算法实现算法用三个类实现:1.ArrayUtil类,负责生成由0-100的数字组成的随机数组,2.MergeSorterRunnable类,负责进行二分法排序,3.MergeSorterTest类,负责测试排序结果。thread工程的包结构图如下:9**大学本科实验报告专用纸

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。