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

吴中企业建设网站报价可以访问境外的浏览器

吴中企业建设网站报价,可以访问境外的浏览器,免费网址怎么申请注册,查企业去哪个网站之前我们学习过把两个有序数组合并再一起后任然有序,就叫归并; 那么,排序是否也可以把一个要排序的数组分割成两个有序的数组,然后归并,之后再拷贝回原数组,就实现了排序 但是怎么才能控制分割成的数组是有…

之前我们学习过把两个有序数组合并再一起后任然有序,就叫归并;
在这里插入图片描述
那么,排序是否也可以把一个要排序的数组分割成两个有序的数组,然后归并,之后再拷贝回原数组,就实现了排序
但是怎么才能控制分割成的数组是有序的呢,
当:
在这里插入图片描述
当数组中只有两个数的时候,我们进行分割后,每一个数组就只有一个数,就可以看成有序的

有了这个思想,那么我们就递归分个要排序的数组,当递归分割到只有两个数的时候,在归并
在这里插入图片描述

void Merge(int* a, int* tmp, int begin, int end)
{//分割if (begin == end){return;}int mid = (begin + end) / 2;Merge(a, tmp, begin, mid);Merge(a, tmp, mid + 1, end);//归并int begin1 = begin;int end1 = mid;int begin2 = mid + 1;int end2 = end;int dex = begin;while (begin1<=end1&&begin2<=end2){if (a[begin1] <= a[begin2]){tmp[dex] = a[begin1];dex++;begin1++;}else{tmp[dex] = a[begin2];dex++;begin2++;}}while (begin1 <= end1){tmp[dex] = a[begin1];dex++;begin1++;}while (begin2 <= end2){tmp[dex] = a[begin2];dex++;begin2++;}//拷贝回去memcpy(a + begin, tmp + begin, (end - begin + 1) * sizeof(int));}
void MergeSort(int* a, int n)
{int* tmp = (int*)malloc(sizeof(int) * n);Merge(a,tmp,0,n-1);
}

非递归的写法:
之前的快速排序是借助栈来实现非递归,因为每次分完之后他就找出了key的位置,那个区间出栈后不需要再用到
但是归并排序的话,分割完后,还要用到之前的分割区间,但是都已经出栈了,就找不到了。所以归并排序的非递归不能用栈来实现
在这里插入图片描述
但是这样的归并方式只适合数组中的元素个数是2的指数倍,如果我们要适合其他区任何个数的话在划分区间归并的时候还的判断是否越界
在这里插入图片描述
代码:

void MergeSortNoNs(int* a, int n)
{int* tmp = (int*)malloc(sizeof(int) * n);int pas = 1;while (pas<n){for (int i = 0; i < n; i += pas * 2){int begin1 = i; int end1 = i + pas - 1;int begin2 = i + pas; int end2 = i + 2 * pas - 1;//越界管理if (begin2 >= n){break;}if (end2 >= n){end2 = n - 1;}int dex = i;while (begin1 <= end1 && begin2 <= end2){if (a[begin1] <= a[begin2]){tmp[dex] = a[begin1];dex++;begin1++;}else{tmp[dex] = a[begin2];dex++;begin2++;}}while (begin1 <= end1){tmp[dex] = a[begin1];dex++;begin1++;}while (begin2 <= end2){tmp[dex] = a[begin2];dex++;begin2++;}//拷贝回去memcpy(a + i, tmp+i, (end2-i+1) * sizeof(int));}pas *= 2;}
}
http://www.hkea.cn/news/719361/

相关文章:

  • 自己的网站做飘窗百度推广账号登录入口
  • 国内好的网站建设国内外十大免费crm软件推荐
  • 淄博品质网站建设百度销售推广
  • 网站建设学习内容网站模板哪家好
  • 建立b2b网站成本微信营销平台系统
  • 学做衣服网 缤纷网站手机百度ai入口
  • 点餐系统网站建设画质优化app下载
  • 上海都有哪些企业公司seo网站seo
  • 进一步加强政府网站建设网站建设介绍ppt
  • 做网站的设计软件上海seo推广外包
  • 中国工程局人才招聘网福建seo推广方案
  • 深圳南山做网站的公司百度投诉中心
  • 辽宁建设工程信息网业绩认定武汉网站优化公司
  • 莱芜都市人才网上海网站seo公司
  • 广州做鞋的网站怎么让某个关键词排名上去
  • 温州平阳县网站建设兼职东莞网络推广哪家公司奿
  • 做单页网站价格微信朋友圈广告在哪里做
  • 濮阳家电网站建设一般开车用什么导航最好
  • html5 图片展示网站大作设计网站
  • 河北正规网站建设比较百度一下你就知道官页
  • 企业网站建设哪家服务好福州网站关键词推广
  • 惠州悦商做网站软件开发一般需要多少钱
  • 做衣服外单网站优化大师官方正版下载
  • 专门做酒店的网站百度排行
  • 上海做手机网站建设盐城网站优化
  • html论坛模板东营seo整站优化
  • 天津网站建设582345网址导航桌面版
  • 东莞纸箱厂东莞网站建设经典模板网站建设
  • 贺州同城购物网站建设中国网站排名100
  • 黄骅港旅游景点爱站网seo工具包