下载此文档

数据结构实验-归并排序算法.doc


文档分类:IT计算机 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
大连理工大学实验预****报告学院(系):电信专业:班级:姓名:学号:组:___实验时间:实验室:实验台:指导教师签字:成绩:实验名称Mergesort实验目的和要求(一)、实验目的DesignthemergesortalgorithmandimplementitinClanguage设计归并排序算法并于C语言实现。(二)、实验要求Requirements:1)plexityofyouralgorithm2):1)分析算法的时间复杂度。2)提交的文档中说明你的算法和源代码。二、实验原理归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(DivideandConquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可解决了上面的合并有序数列问题,再来看归并排序,其的基本思路就是将数组分成二组A,B,如果这二组组内的数据都是有序的,那么就可以很方便的将这二组数据进行排序。如何让这二组组内数据有序了?可以将A,B组各自再分成二组。依次类推,当分出来的小组只有一个数据时,可以认为这个小组组内已经达到了有序,然后再合并相邻的二个小组就可以了。这样通过先递归的分解数列,再合并数列就完成了归并排序。大连理工大学实验报告学院(系):电信专业:电创班级:1501姓名:陈晓牛津学号:组:___实验时间:2017/4/18实验室:实验台:指导教师签字:成绩:实验名称Mergesort算法分析归并组合功能:用二分检索查找的方法采用从低部分,高部分进行查找建立一个新的数组,将小的数放入新的数组中。归并排序功能;利用递归进行排序,先查找中点位置 ,再对前部分查找,然后后部分,将小的数据放入新的数组关键代码及注释voidmergesort(int*a,intleft,intright){ intmid;if(left<right)/*分组条件*/ { mid=(left+right)/2;/*取中点*/ mergesort(a,left,mid);/*左边分组*/mergesort(a,mid+1,right);/*右边分组*/ partition(left,mid,right);/*归并函数*/ }运行结果代码#include<>inta[]={70,66,88,70,45,90,33,66,70,22,11,90,11,90,11,90},k=0;inti;voidmergesort(int*a,intleft,intright);voidpartition(intleft,intmid,intright);intmain(){ printf("要排序的数组为:\n");/*输出要排序的数*/for(i=0;a[i]!=NULL;i++){ printf("%4d",a[i]); } printf("\n");mergesort(a,0,15);/*归并排序*/printf("则结果为:\n");for(i=0;a[i]!=NULL;i++)/*经过排序之后输

数据结构实验-归并排序算法 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人glfsnxh
  • 文件大小138 KB
  • 时间2020-08-07