为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

归并排序

2017-09-26 4页 doc 25KB 17阅读

用户头像

is_842972

暂无简介

举报
归并排序归并排序 实验[2] [实验题目]:归并排序 专业:信息与计算数学 学号: 姓名: 日期: 1 实验目的 学习归并排序算法的算法思想,并将其运用在计算机程序中 。 2 实验内容 首先学习归并排序算法的思想 然后运用归并排序算法的思想进行程序编译 3 算法设计 首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个 数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空, 那直接将另一个数列的数据依次取出即可。 4 程序代码 #include //调用setw ...
归并排序
归并排序 实验[2] [实验题目]:归并排序 专业:信息与计算数学 学号: 姓名: 日期: 1 实验目的 学习归并排序算法的算法,并将其运用在计算机程序中 。 2 实验内容 首先学习归并排序算法的思想 然后运用归并排序算法的思想进行程序编译 3 算法设计 首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个 数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空, 那直接将另一个数列的数据依次取出即可。 4 程序代码 #include //调用setw #include //将b[0]至b[right-left+1]拷贝到a[left]至a[right] template void Copy(T a[],T b[],int left,int right) { int size=right-left+1; for(int i=0;i void Merge(T a[],T b[],int left,int i,int right) { int a1cout=left,//指向第一个数组开头 a1end=i,//指向第一个数组结尾 a2cout=i+1,//指向第二个数组开头 a2end=right,//指向第二个数组结尾 bcout=0;//指向b中的元素 for(int j=0;ja1end) {b[bcout++]=a[a2cout++]; continue; } //如果第一个数组结束,拷贝第二个数组的元素到b if(a2cout>a2end) {b[bcout++]=a[a1cout++]; continue; } //如果第二个数组结束,拷贝第一个数组的元素到b if(a[a1cout] void MergeSort(T a[],int left,int right) { T *b=new int[right-left+1]; if(left>n; int *a=new int[n]; cout<<"请输入相应的数字:"; for(int i=0;i>a[i];} MergeSort( a, 0, n-1); cout<<"排序结果: "; for(int j=0;j
/
本文档为【归并排序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索