当前位置: 首页 > news >正文

做网站公司推荐太原cms模板建站

做网站公司推荐,太原cms模板建站,昌平网站建设公司,三站合一网站欢迎来到博主的专栏C语言数据结构 博主ID#xff1a;代码小豪 文章目录 归并排序两个有序数组的合并归并归并排序 归并排序的代码 归并排序 两个有序数组的合并 当前有两个有序数组arr1和arr2#xff0c;我们创建一个可以容纳arr1和arr2同等元素个数的新数组arr。 让一个…欢迎来到博主的专栏C语言数据结构 博主ID代码小豪 文章目录 归并排序两个有序数组的合并归并归并排序 归并排序的代码 归并排序 两个有序数组的合并 当前有两个有序数组arr1和arr2我们创建一个可以容纳arr1和arr2同等元素个数的新数组arr。 让一个指针指向arr1的队首一个指针指向arr2的队首还有一个指针指向arr的队首。依次对比两个数组之间的值的大小将数据较小的值放入arr中再将对应的指针指向下一个元素。 此时arr2已经遍历完了将arr1的剩余数据全部拷贝到arr中。 可以发现这种方法将有序数组合并之后任然是一个有序的数组这是否说明我们可以利用数组合并的方式实现一种排序算法呢 这是一个无序数组arr但是将这个数组分为两半。 就可以将两部分合并成一个有序的数组。 但是绝大多数的无序数组都无法找到这个分界线所以想要利用合并有序数组完成排序就需要先将整体的数组分为两部分其中一部分是有序数组另外一部分也是有序数组然后再将这两个有序数组合并完成排序。 当数组中的元素个数越来越多那么出现两个有序数组的概率就会越来越小这是显而易见的现象那么如果反过来想呢若是数组中的数据只有两个那么出现两个有序数组的概率是百分之百。 如果现在有四个元素组成的数组那么由此法拆解后的子数组为 为什么要将一个数组分成N个大小为1的子序列呢 可以发现这些子序列都是有序的那么将这些子序列进行有序合并合并后的序列也就是有序的序列了。 归 相信大家再学高数的极限的时候都看过这么一句话 一尺之捶日取其半万世不竭 意思就是将一个木棒每天截取他的一半永远都截不完。 当然数组是不会取不完的如果将一个数组一直分成两半最后就会得到一个元素组成的子序列。 并 现在有N个元素为1的子序列将两两相邻的子序列合并成有序序列。直到所有子序列构成一个数组为止 例如 归并排序 将前3个操作联系起来就能实现归并排序。 归并排序的定义如下 设初始序列含有n个记录则可以看成是n个有序的子序列每个子序列的长度为1然后两两归并得到n/2个长度为2或1的子序列再两两合并……如此重复直到得到一个长度为n的有序序列为止 归并排序的步骤如下 1将整个数组二分递归直到不可分为止单数据序列 2由递归堆栈开始合并有序序列最后将合并完成的数组拷贝到原数组。 这里讲讲合并数组时的递归堆栈先通过递归将整个数组拆分。 这个分解的方式与二叉树一致。完成分解之后就是将序列合并了。在调用堆栈的作用下会将每个递归函数由下开始回溯。 归并排序的代码 void _MergeSort(int* a, int begin, int end,int* tmp) {int mid (begin end) / 2;if (begin end)//不可再分返回递归{return;}_MergeSort(a, begin, mid, tmp);_MergeSort(a, mid1, end, tmp);int i begin;//合并数组int begin1 begin;//将原数组分为两部分一部分是beginmid另一部分是mid1endint end1 mid;int begin2 mid 1;int end2 end;while (begin1 end1 begin2 end2)//合并有序数组{if (a[begin1] a[begin2]){tmp[i] a[begin1];}else{tmp[i] a[begin2];}}while (begin1 end1)//将剩余数据拷贝到临时数组{tmp[i] a[begin1];}while (begin2 end2)//将剩余数据拷贝至临时数组{tmp[i] a[begin2];}memmove(abegin, tmpbegin, sizeof(int) * (end-begin 1));//将合并的数组拷贝到原数组 } void MergeSort(int* a, int n) {int* tmp (int*)malloc(sizeof(int) * n);//创建一个相等元素个数的数组、_MergeSort(a, 0, n - 1, tmp);free(tmp); }
http://www.pierceye.com/news/202178/

相关文章:

  • 做网站有了空间在备案吗网站建设实务课本
  • 个人站长和企业网站wordpress主键外键
  • 关于对网站建设情况的通报东南亚跨境电商有哪些平台
  • 如需郑州网站建设长沙微网站制作
  • html格式网站网站搜索排名优化软件
  • 定制 网站天津做网站要多少钱
  • 免费做问卷的网站网站建设 好发信息网
  • 网站职能建设论文网页跳转链接怎么制作
  • 专题网站开发工具有哪些wordpress迁移500
  • 酒泉网站建设费用磁力搜索引擎不死鸟
  • 有网站是做水果原产地代发的吗临沂哪家做网站最好
  • 网站建设的背景wordpress htaccess
  • 如何在百度上注册自己的网站郓城做网站哪家好
  • 企业电子商务网站建设总结安徽建设工程信息网查询平台公司
  • 推荐常州微信网站建设做外汇看的网站
  • 网站页面优化方案网页设计培训费用多少
  • 落寞文学网单本多本小说wordpress主题哈尔滨网站优化指导
  • 网站域名使用费用网站在vps能访问 在本地访问不了
  • wordpress可以做成企业站吗一个域名可以建设几个网站
  • 企业网站备案需要什么资料工装装饰公司
  • 网站建设精美模板下载邢台165信息交友
  • 普陀区建设工程质检网站网站关键词优化排名
  • 云服务器多网站解析企业网站打不开了
  • 搭建flv视频网站如何注册域名步骤
  • 平面设计公司网站单页模板
  • 网站模板 代码免费建设部网站有项目经理资质查询系统
  • 网站建设注意哪些方面wordpress 做手机站
  • 淄博网站制作定制推广网站程序源代码
  • 二手房地产中介网站建设wordpress改背景图片
  • 可以自己做安卓app的网站Wordpress会员插件出错